面向对象基础—构造方法

目录

5.构造方法

5.1构造方法描述

5.2构造方法注意事项

5.3标准类的制作


5.构造方法

(学完构造方法之后,要求知道构造方法的作用,以及能够使用构造方法)

5.1构造方法描述

构造方法是一种特殊的方法

作用:创建对象

格式:

public class 类名{

     修饰符 类名(参数){

}

}   

(这里的修饰符我们一般使用public)

看上述右边这个代码:

在main方法做了一件事情Student s1 = new Student();

这个动作是创建对象,我们重点看new后面的Student();

所以这个内容他就是一个方法。(这个方法他比较特殊,他是一个类名所以他是构造方法

范例:
 

public class StudentDemo{

    public Student(){

    //构造方法内书写的内容

    }

}

这个方法里面我们没有给参数,所以这就是一个无参的构造方法。(在构造方法里面我们可以做我们的一些操作)

构造方法的功能:主要是完成对象数据的初始化

代码演示:

/*
    学生类

    构造方法:
        作用:创建对象
        功能:完成对象数据的初始化

    格式:
        修饰符 类名(参数){

        }
        修饰符一边用public
 */
public class Student {
    //1.首先给出两个成员变量用private修饰
    private String name;
    private int age;

    //3.在他们之间写一个构造方法
    public Student(){
        System.out.println("无参构造方法");
    }

    //2.最后再给一个show方法
    public void show(){
        System.out.println(name + "," + age);
    }
}
/*
    测试类
 */
class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s1 = new Student();//这个new后面的内容会调用无参构造方法

        //给成员变量赋值
        s1.show();
        /*得到两个输出结果
        无参构造方法
        null,0
        也就是我们调用Student();方法的时候他会执行Student类中的3.构造方法
        接着调用show方法,我们没有给两个成员变量赋值所以会得到默认值。
         */
    }
}

5.2构造方法注意事项

先到代码中演示:

/*
    学生类
 */
public class Student {
    //1.修饰两个变量
    private String name;
    private int age;

    //3.无参数构造方法
//    public Student(){
//        System.out.println("无参数构造方法");
//    }

    //6..注释掉3的无参数构造方法我们来给一个有参数的构造法
    public Student(String name){//10.通过这个构造方法创建一个对象
        this.name = name;
    }/*7.这样写测试类中的Student s = new Student();会报错,当然这个类中也会有报错,如果
        我们在Student s = new Student();的括号里加上一个String类型的数据就不会报错了
    */
    //9.无我们只需再给出一个参数构造方法即可
    public Student(){}

    //13.再创建一个带参数构造方法
    public Student(int age){
        this.age= age;
    }

    //16.再创建有多个参数的构造方法
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }

    //2,定义一个show方法
    public void show(){
        System.out.println(name + "," + age);
    }
}
/*
    学生测试类
 */
class StudentDemo {
    public static void main(String[] args) {
        //4.public Student() 创建对象
        Student s = new Student();
        //5.调用show方法
        s.show();// null,0
        //4.如果没有写3.的代码也不会报错,因为系统会给出一个默认的无参构造方法
        //8.如果我就想在这里Student s = new Student();使用无参数构造方法怎么办呢

        //11.public Student(String name) 创建对象
        Student s2 = new Student("林青霞");
        //12.通过s2调用方法
        s2.show();// 林青霞,0

        //14.public Student(int age) 再来创建一个对象
        Student s3 = new Student(30);
        //15.通过s3调用对象
        s3.show();// null,30

        //17.public Student(String name,int age) 再创建一个对象
        Student s4 = new Student("林青霞",30);
        //18.通过s4调用对象
        s4.show();// 林青霞,30
    }
}

总结注意事项:

  • 构造方法的创建:

如果没有定义构造方法,系统将给出一个默认的无参数构造方法

如果定义了构造方法,系统将不再提供默认的构造方法

  • 构造方法重载:

如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

  • 推荐的使用方法:

无论是否使用,都建议手工书写无参数构造方法

     (也就是说以后写构造方法的时候,带参的写不写先不管,但是无参的构造方法都尽量手动给出)

5.3标准类的制作

(重点理解!)

  • 成员变量

都是用private修饰

  • 构造方法

1.提供一个无参构造方法

2.提供一个带多个参数的构造方法

  • 成员方法

1.提供每一个成员变量对应的setXxx()和getXxx()方法

2.提供一个显示对象信息的show();

  • 在测试类中我们要创建对象并为成员对象赋值
  • 而创建对象并未成员变量赋值有两种方式

1.无参构造方法创建对象后使用setXxx()方法赋值。

2.使用带参构造方法直接创建带有属性值的对象

代码演示:

/*
    ①	成员变量
        都是用private修饰

    ②	构造方法
        1.提供一个无参构造方法
        2.提供一个带多个参数的构造方法

    ③	成员方法
        1.提供每一个成员变量对应的setXxx()和getXxx()方法
        2.提供一个显示对象信息的show();

 */
public class Student1 {
    //成员变量
    private String name;
    private double height;

    //构造方法
    public Student1() {
    }

    public Student1(String name, double height) {
        this.name = name;
        this.height = height;
    }

    //setXxx()/getXxx()方法(成员方法)

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public double getHeight() {
        return height;
    }

    public void show() {
        System.out.println(name + "," + height);
    }
}
/*
    ④	在测试类中我们要创建对象并为成员对象赋值

    ⑤	而创建对象并未成员变量赋值有两种方式
        1.无参构造方法创建对象后使用setXxx()方法赋值。
        2.使用带参构造方法直接创建带有属性值的对象

 */
class StudentDemo1 {
    public static void main(String[] args) {
        //创建对象
        Student1 s1 = new Student1();
        //无参数方法使用set方法赋值
        s1.setName("林青霞");
        s1.setHeight(173.5);
        //调用show方法
        s1.show();
        //创建对象
        Student1 s2 = new Student1("林青霞", 183.74);
        //调用show方法
        s2.show();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贰陆.256

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值