JAVA基础(46)---构造方法和匿名方法
构造方法
构造方法的特点
- 构造方法没有返回值,连void也不写
- 构造方法的方法名必须和类名完全一致;
- 当我们没有去显式的声明构造方法的时候,Java默认会为每一个类,提供一个无参的构造方法。一旦我们提供了任何一个构造方法,那么Java就不在提供默认的无参构造方法。
基于第三个特点,我们一般在写一个类的时候,如果要写构造方法,自己最好将这个无参的构造方法也手动的写出来。
访问修饰符 类名称(【形参列表】){
}
构造方法的作用
- 创建对象
- 完成对象的初始化
构造方法在何时使用
创建对象时有jvm自动去调用
构造方法的重载
是在程序运行阶段,有Jvm去判断调用哪一个重载的方法。
【
编译阶段:检查是否存在语法错误,并将 .java 文件,编译成 .class文件,生成字节码文件
运行阶段:才会将生成的 .class 文件加载进内存中,才会去真正的执行我们的程序传递参数,匹配要执行的方法。
】
对对象的初始化
- 在对象创建好之后,进行初始化;
- 在创建对象的时候,利用构造方法完成对象的初始化
- 可以利用代码块来完成对象的初始化。
代码块
随着创建对象而执行构造代码块
无论你执行的是有参构造还是无参构造,构造代码块都会执行,而且先于构造方法执行
如果使用的是无参构造,那么对象的属性值就是构造代码块中所赋的值
如果使用的是有参构造,那么有参构造中传入的属性值,会覆盖掉构造代码块中的对应的属性的值
例如:{
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调用本类的构造方法的时候,必须出现在方法的第一行
阅读更多
- Java基础进阶_day01_(构造方法,this关键字,匿名对象)
- java基础七(成员变量 局部变量 匿名对象 封装 设计原则 private this 构造方法 static)
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- JAVA基础/构造方法
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- java基础:继承中的构造方法规则
- java中匿名内部类的构造方法调用
- Java面向对象基础--构造方法
- java基础-构造方法
- java基础入门-对象与构造方法
- 【Java基础】构造方法调用构造方法
- java基础入门-对象与构造方法
- 面向对象基础(类与对象的定义、进一步研究、封装性、构造方法与匿名对象)
- Java基础——构造函数、抽象类、父类构造方法初始化
- java 基础的对象、类、构造方法、构造对象、#import语句
- java基础知识回顾之---java String final类构造方法
- 黑马程序员--Java基础加强--16.利用反射操作泛型V【通过Constructor反射解析泛型构造方法】【通过Field反射解析泛型成员变量】【个人总结】
- JAVA 面向对象 基础概念,匿名对象的使用,方法的重载
- JAVA匿名内部类的构造方法
- 第三课 Java基础lesson 03 —— 继承、多态与构造方法