什么是构造方法
一个特殊的方法
语法:public 类名(){ }
定义在类的内部,其他方法外部。用来创建对象和给属性赋值
构造方法的特点:
- 构造方法没有 返回值类型(连void都没有)
- 方法名必须和类名相同(一个类中要想用多个构造方法只能用重载)
- 构造方法不允许手工调用,在对象构造过程中(通过 new 关键字创建对象时)自动调用1次;(好比人类中的剪脐带,只在出生的时候剪一次)
- 构造方法可以重载
- 当没有手动添加构造方法时,系统会默认添加无参构造
当添加有参构造方法时,将不再自动添加无参构造
作用:给实例中的对象赋值;
在现实生活中,很多事物一出现,就天生具有某些属性和行为。比如人一出生,就有年龄、身高、体重、就会哭;汽车一出产,就有颜色、有外观、可以运行等。这些,我们就可以将这些天然的属性和行为定义在构造函数中,当new实例化对象时,也就具有这些属性和方法了,没必要再去重新定义了,从而加快了编程效率。
构造方法的示例程序:
class Dog{
//定义类的属性;
String name;
int age;
double score;
boolean sexual;
//构建无参构造函数
public Dog(){}
//构建有参构造函数
public Dog(String n,int a,double s,boolean sex){
name = n;
age =a;
score =s;
sexual=sex;
}
//定义一个带一个参数的方法
public void play(String n){
System.out.println(name+"play");
}
//定义一个带三个参数的方法
public void play(String n,int a,boolean sex){
System.out.println("叫"+n+"的,"+a+"岁了;是"+(sex ? "公":"母")+"的;");
}
}
public class TestClass{
public static void main(String[] args) {
//对方法的声明,并赋值;
Dog d= new Dog("小黄",3,58.0,true);
//调用构造方法;
//d.play();
d.play("小黑",10,true);
}
}
对象的创建语法:
`类名 对象名 = new 类名();`
对象的创建过程:
- 分配空间 所有的实例变量被赋予默认值;
- 初始化属性 所有的实例变量被赋予初始值,第二次为属性赋值的机会;
- 调用构造方法 实例变量常常被第三次赋值
属性的使用:
为属性赋值:
对象名.属性名 = 字面值;
s.name = “zs”;
取值:
数据类型 变量名 = 对象名.属性名; String name = s.name;
System.out.println(对象名.属性名);
方法的使用:
对象名.方法名(实参);
数据类型的引用:
变量按照类型划分
- 8种简单数据类型:简单变量; 存值;
- 对象变量(引用): 存对象的地址;
Java中参数 的传递规则:
-
简单类型的参数 传值
-
对象类型的参数 传地址 传引用 实参和形参指向同一对象
什么是引用?:
对象类型的变量称之为引用
类名 引用名 = new 构造方法名(实参);
注意:引用数据类 必须 和 对象类型保持一致
引用的特点:
- 1,引用中存储的是对象在堆空间中的首地址
- 2,对象在堆空间中是相互独立的
- 3,引用的声明 Student s;
- 4,引用之间相互赋值,赋的是首地址
- 5,如果引用中存储的是null,使用引用会运行报错 空指针异常:java.lang.NullPointerException
- 6,引用的应用: 应用于参数、返回值、数组