什么是构造方法
一个特殊的方法
语法:
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,引用的应用: 应用于参数、返回值、数组