Java3 构造函数与this的初步认识

构造函数的意义:对事物进行初始化(当声明变量为私有)

Person p = new Person();//创建对象

程序中括号内为初始化数值 数据类型都带有默认初始值。
例如想通过方法访问private变量 并有初始值(非默认)

构造函数格式:

1.函数名和类型相同。

2.没有返回值类型。

3.没有具体的返回值

package Xuexi;
//使人 一对象实例化时就有姓名
 class TestPerson
{
   private String name;
    private int age;
    public TestPerson(String n,int a) {//构造方法 初始化变量
        name=n;
        age=a;
    }
    /*public void setName(String n1) {  
        name=n1;
    }
    public String getName() {
        return name;
    }
    public void setAge(int a1) {
        age=a1;
    }
    public int getAge() {
        return age;
    }*/
    void show() {System.out.println(name+age);}
}

public class Person {
    public static void main(String []args) {
        
        TestPerson p=new TestPerson("xiaoming", 21);//通过外界赋予初始化变量()为初始值填充部分
        /*p.setName("xiaohong");
        p.setAge(21);*/
        p.show();
    }
}

一般函数和构造函数运行上的区别

构造函数在对象创建时执行,只执行一次。
一般函数在创建后才能被调用,可以使用多次
即:一般方法需要先创建对象 对象创建需要先初始化(可以使用创建的默认值();默认构造方法)
多构造函数在类中体现可以是重载模式。


构造模式可以私有化 但只能在本类中使用。私有化以后,其他程序无法创建该类的对象。
在创建类时,类会创建默认的构造函数,如果自己创建构造函数,默认构造函数会消失。

private TestPerson(String n,int a) {//构造方法 初始化变量
        name=n;
        age=a;
这种情况下 就无法通过构造方法进行初始化(默认的因为你有构造方法消失了)

this

this();带上参数列表的方式可以访问其他构造函数
比如 this(“jisi”)访问带一个字符串参数的构造函数
注意:任何构造方法都有this

class TestPerson
{
   private String name;
    private int age;
    private  TestPerson(String n1) {
        name=n1;
    }
    public TestPerson(String n,int a) {//构造方法 初始化变量
        this(n);//通过外界传入TestPerson构造方法中的n 
        //将n中的初始值传给this中的其他构造方法中的n1变量
        age=a;
    }
    
    void show() {System.out.println(name+age);}
}

public class Person {
    public static void main(String []args) {
        
        TestPerson p=new TestPerson("xiaoming", 21);//通过外界赋予初始化变量()为初始值填充部分
        
        p.show();
    }}

this语句必须定义在构造函数的第一行 因为初始化动作要先执行

this小例子 判断是否同龄

class TestPerson
{
   private String name;
    private int age;
    private  TestPerson(String n1) {
        name=n1;
    }
    public TestPerson(String n,int a) {//构造方法 初始化变量
        this(n);//通过外界传入TestPerson构造方法中的n 
        //将n中的初始值传给this中的其他构造方法中的n1变量
        age=a;
    }
    void show() {System.out.println(name+age);}
    public boolean equalsAge(TestPerson p1) {
        return p1.age==this.age;
    }
}
public class Person {
    public static void main(String []args) {
        TestPerson p=new TestPerson("xiaoming", 21);//通过外界赋予初始化变量()为初始值填充部分
        TestPerson pp=new TestPerson("xiaohua", 22);
        boolean b=p.equalsAge(pp);
        System.out.println(b);
        p.show();
    }
}

你可能感兴趣的:(Java3 构造函数与this的初步认识)