类的第三个成员:构造方法
---------------------------------类的一二成员为属性和方法
-
作用:只有一个 构建当前类的对象
-
写法
权限修饰符 与类名一致的方法名(参数列表)
{
创建一个对象;
返回对象;
} -
用法:用new关键字调用
-
特点:
(1)每一个类都有构造方法,若自己在类中没有定义,默认为无参构造方法;若我在类中写了构造方法,默认的会被覆盖。
(2)存在构造方法重载 -
创建对象的同时还需要做一些其它事情就可以用构造方法。有参构造方法可以在构造对象时给属性赋值
构造方法创建对象(开辟空间)---->然后返回创建对象空间的引用
(3) 一般方法无法调用构造方法,因为构造方法是创建对象的,而一般方法需要对象来调用
this关键字的使用
- 是一个关键字,代替的是某一个对象(当前调用属性和方法的那个对象)
- this既然代替的是一个对象,this可以调用属性和方法
- 这一行代码可以放在类中任何成员位置且上下顺序随意
- this可以调用构造方法 在一个构造方法中调用另一个构造方法 通过 this();省略了构造方法的名字(必须和类名一致)
public class Person{
public String name;
public int age;
public Person(){System.out.println("我是无参数的构造方法");}
public Person(String name ,int age){
this();**//必须在第一行,调用无参的构造方法**
System.out.println("我是有参数的构造方法");
this.name=name;
this.age=age;
}
类的第四个成员:程序块
1.作用:和普通方法一样 做事情的
2.可以认为程序块是一个没有修饰符,没有参数,没有返回值,没有方法名的特殊方法,如:
{
System.out .println("我是一个程序块");
}
3.用法:块也需要调用才能执行,我们自己无法调用(没有名字)
每一次我们调用构造方法之前,系统会帮我们自动的调用一次程序块 ,让他执行一遍
4.特点:没有重载的概念(它连名字和参数都没有)
但是可以在类中定义多个程序块
5.块可以在里面写一些程序 (我想在创建对象之前执行)