构造方法
什么是构造方法
在类实例化对象时运行的一种特殊的方法
为什么需要构造方法
构造方法适合为对象的属性赋初值
编写构造方法
public 类名(){ //方法体 }
构造方法不写返回值
构造方法的方法名必须和类名相同
构造方法不能使用对象调用只在实例化对象时运行
new 类名(参数列表);//调用构造方法
注意:
如果一个类中没有编写构造方法那么系统会自动为这个类生成一个无参构造
反之不会生成一个无参构造
构造方法可以重载
return关键字
返回方法指定类型的值(这个值是确定的)结束方法的执行(仅一个return)。
语法:
public int A(int a){ reeturn a; }
成员变量和局部变量
类中定义的变量(属性)就是成员变量。
方法中定义的变量,或形式参数就是局部变量。
区别
作用域不同
成员变量可以在当前类的任何方法中使用。
局部变量只能在声明他的方法中使用。
初始值不同
成员变量有初值默认值。
(0 .0false
ull)
局部变量没有初始值。
优先级不同
成员变量和局部变量同名时。
局部变量具有更高的优先级。
如果想访问成员变量需要在变量名前加this. 。
this关键字
this是对象在方法中对自身的引用
用法
this.属性
区分成员变量和局部变量
this.方法()
this()
调用当前类的构造
必须编写在构造方法中
必须编写在方法中的第一行
构造函数之间的调用:
this:区分局部变量和成员变量同名的情况。
构造函数之间的调用只能通过this语句来完成。
构造函数之间进行调用时this语句只能在第一行。
构造方法要先执行,如果构造方法当中还有初始化,那就区执行更细节的初始化。
构造代码块
特点:
对象一建立就运行了,而且优先于构造函数执行。
语法:
{ System.out.println("........"); }
作用:
给对象进行初始化的。
构造代码块和构造方法的区别?
1.构造方法是对应的对象进行初始化。
2.构造代码块是给所有的对象进行统一初始化。
构造代码块种定义是不同对象共性的初始化内容。
引用数据类型
特征(String、自造类、数组)
变量保存的是这个对象的引用
在方法中 变量的引用保存在栈中 对象保存到堆中
Dog d=new Dog("旺财",3,17.6,"金毛"); Dog dd=d; dd.name="亏财"; System.out.println(d.name);
引用数据类型数组
Dog[] dogs=new Dog[4]; //默认值:{null,null,null,null}
引用数据类型数组元素的默认值是null
null指针异常
null是个常量,表示当前引用,没有引用任何对象
当这样的null对象打.调用属性或方法是,会出现null异常
如果在遍历引用类型数组时发生null指针异常,需要在元素调用属性或方法前加个if判断
多维数组(二维数组)
普通数组中,数组元素是具体数据
多维数组中,数组元素还是数组