重温面向对象的思想——构造器和重载

简介: 1.this关键字this表示这个对象的参考名称;例如this.age1=age2;表示将age2的值,赋值给这个对象的私有属性age1.2. .重温面向对象的思想——构造器和重载构造器:创建一个对象时,有时候需要对在实例化一个对象时,对这个对象进行初始化,这个时候我们就需要构造方法来进行这种初始化。

1.this关键字

  • this表示这个对象的参考名称;例如this.age1=age2;表示将age2的值,赋值给这个对象的私有属性age1.

2. .重温面向对象的思想——构造器和重载

  • 构造器:创建一个对象时,有时候需要对在实例化一个对象时,对这个对象进行初始化,这个时候我们就需要构造方法来进行这种初始化。
  • 重载:当这种初始化需要按照不同的语境,不同的参数的构造器来进行初始化。
  • 总结——方法的重载是多种构造器,用以完成不同的初始化。

    -注意:构造器==构造方法,两者一样


3.构造方法和自定义方法名注意事项

需要注意的是,自定义的方法和构造器的名字一样时,编译是能够通过的,但是不符合编程规范,例如

package demo;

public class Store {

    private String goodsClass;
    private double price;

    // 这个是第一个构造方法
    public Store() {
        this.goodsClass = "今天商店关门了";
        System.out.println(this.goodsClass);
    }

    // 这个是第二个构造方法,改变A商品的价格,前两者就叫做重载
    public Store(String goodsClass, double price) {
        this.goodsClass = goodsClass;
        this.price = 2.0 * price;
    }

    // 这个是自定义的方法,不是构造器
    // 虽然自定义的方法和构造器重名了,但编译能够通过,编程规范不建议这样写
    public void Store() {
        System.out.println("第二个Store" + this.goodsClass + this.price + "元");
    }

    public static void main(String[] args) {
        Store st1 = new Store("香蕉", 3);// 构造方法构造反法1
        st1.Store();// 对象的自定义Store方法
        Store st2 = new Store();// 构造方法2
    }
}
结果:
第二个Store香蕉6.0元
今天商店关门了

4. 构造方法之间的引用

  • 在一个构造方法中引用另一个构造方法的条件——当A构造方法中的过程,在B构造方法中能够被复用。例如
package demo;

public class ThisDemo {
    private int number;
    private String text;

    public ThisDemo(int number) {
        if (number < 0) {
            System.out.println("你输入的数字小于零,不能用");
        } else {
            this.number = number;
            System.out.println("你输入的数字是" + this.number);
        }
    }

    public ThisDemo(int number, String text) {
        //调用另一个构造方法来判断
        this(number);
        this.text = text;
        System.out.println("使用this()来调用另一个构造方法");
        // 具体调用哪一个构造器示传入的参数的个数,类型决定
    }

    //测试
    public static void main(String[] args) {
        ThisDemo demo = new ThisDemo(10, "This关键字");
    }
}
结果:
你输入的数字是10
使用this()来调用另一个构造方法

相关文章
|
6月前
|
搜索推荐 Java
【JavaSE专栏59】方法重写的概念及优先级问题,面向对象的多态性机制
【JavaSE专栏59】方法重写的概念及优先级问题,面向对象的多态性机制
|
4月前
|
Java
Java面向对象编程,构造函数和方法的区别是什么?
Java面向对象编程,构造函数和方法的区别是什么?
43 2
|
4月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
39 2
|
7月前
|
Java
面向对象思想(3)之方法1
面向对象思想(3)之方法1
40 0
|
9月前
|
存储 设计模式 算法
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
|
9月前
|
Java
【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?
【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?
57 0
|
12月前
|
安全 Java 编译器
重温C与C++之构造函数
C++进阶之构造函数
95 0
|
安全 Java 程序员
Java面向对象之组合与多态
本篇文章是上一篇包和继承文章的后续篇,针对面向对象编程的组合、多态、抽象类与接口方面内容的总结分享,希望各位小主们认真浏览,一定会受益多多哟
88 0
Java面向对象之组合与多态
|
网络协议 测试技术 Go
面向对象编程-继承引出 | 学习笔记
快速学习面向对象编程-继承引出
84 0
面向对象编程-继承引出 | 学习笔记