构造方法

1.1public类的直接访问

class Person{
    public int age;//r如果用private就必须调用get和set方法
    public String name;
}
public class Gouzaofangfa {
public static void main(String args[]) {
    Person a=new Person();//声明并且初始化
    a.age=30;
    a.name="Marry";
System.out.println(a.age+a.name);    
}
}

输出:30 marry

1.2private类的方法访问

*构造方法无返回类型
*方法名与类名一致

class Person1{
    private int age;//r如果用private就必须调用get和set方法
    private String name;
    public void Person1() {
        System.out.println(age+"    "+name);//未设值默认为0和null
    }
}
public class Gouzaofangfa1 {
public static void main(String args[]) {
    Person1 a=new Person1();//声明并且初始化
    a.f();
    
}
}

输出:0 null

1.3直接赋初始值

    public int age;//r如果用private就必须调用get和set方法
    public String name;
    public  Person2(int _age,String _name) {//不能有返回类型
        age=_age;
        name=_name;
        System.out.println(age+"  "+name);
    }
}
public class gouzaofangfa32{
public static void main(String args[]) {
    Person2 a=new Person2(30,"老王");//声明并且初始化

}
}

输出30 老王

默认构造方法及其引用顺序

创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,或者在父类中加一个无参数的构造函数,就不会报错。

package com.fourth;
/*默认构造方法:
 * 子类中含有默认构造方法父类中也必须含有
 */
class A {
    public A() {
        System.out.println("执行了A的默认构造方法");
    }
}

class B {
    public B() {
        System.out.println("执行了B的构造方法");
    }

    public void show() {
        // TODO Auto-generated method stub
        
    }
}

class C extends A {
    public C(B b) {//调用的时候把main方法中b的地址传到这里 B b=new B();
        System.out.println("执行了C的构造方法");//相当于b.C(b)
    }
}
/*先执行形式参数是引用类型的调用
 * 在执行父类默认构造方法
 * 在执行自己的默认构造方法
 * 
 */
public class Text1 {

    public static void main(String[] args) {
        
        B b=new B();
        C c=new C(b);
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容