您的位置:首页 > 编程语言 > Java开发

JAVA基础(46)---构造方法和匿名方法

2018-11-13 10:28 323 查看
版权声明:如需转载请标明出处 https://blog.csdn.net/yj201711/article/details/84023973

构造方法

构造方法的特点

  1. 构造方法没有返回值,连void也不写
  2. 构造方法的方法名必须和类名完全一致;
  3. 当我们没有去显式的声明构造方法的时候,Java默认会为每一个类,提供一个无参的构造方法。一旦我们提供了任何一个构造方法,那么Java就不在提供默认的无参构造方法。

基于第三个特点,我们一般在写一个类的时候,如果要写构造方法,自己最好将这个无参的构造方法也手动的写出来。  
                                                             访问修饰符 类名称(【形参列表】){
        
                                                               }

构造方法的作用

  1. 创建对象
  2. 完成对象的初始化

构造方法在何时使用

                                  创建对象时有jvm自动去调用

构造方法的重载

                              是在程序运行阶段,有Jvm去判断调用哪一个重载的方法。
                               【
                                    编译阶段:检查是否存在语法错误,并将 .java 文件,编译成 .class文件,生成字节码文件
                                    运行阶段:才会将生成的 .class 文件加载进内存中,才会去真正的执行我们的程序传递参数,匹配要执行的方法。            
                                】

对对象的初始化

  1. 在对象创建好之后,进行初始化;
  2. 在创建对象的时候,利用构造方法完成对象的初始化
  3. 可以利用代码块来完成对象的初始化。

代码块

         随着创建对象而执行构造代码块

        无论你执行的是有参构造还是无参构造,构造代码块都会执行,而且先于构造方法执行
        如果使用的是无参构造,那么对象的属性值就是构造代码块中所赋的值
        如果使用的是有参构造,那么有参构造中传入的属性值,会覆盖掉构造代码块中的对应的属性的值

                                                   例如:{

                                                                    this.name = "张三";

                                                                       this.age = 20

                                                               }  //这就是一个代码块

匿名对象

一个对象在创建的时候没有名称。匿名对象只能使用一次

例:new String("abc")

[code]public class Person{
public Person(){//这就是一个构造方法
System.out.println("创建了一个person对象");
}
public Person(String name){
this.name = name;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
{
this.name="赵六";
this.age = 22;

}
//属性
private String name;
private int age;
//方法
public void setName(String name){
this.name = name;
System.out.println(name);
}
public String getName(){
return this.name;

}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
public static void main(String[] args){
Person p = new Person();
p.setName("张三");
System.out.println(p.getName());
Person p1 = new Person();
p1.setName("张三");
System.out.println(p1.getName());
Person p2 = new Person("李四");
System.out.println(p2.getName());
Person p3 = new Person("王五",22);
System.out.println(p3.getName() +"---"+p3.getAge());
Person p4 = new Person();
System.out.println(p4.getName() +"---"+p4.getAge());
System.out.println(new String("abcd").length());

}
}

使用this调用本类的构造方法的时候,必须出现在方法的第一行

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐