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

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()来调用另一个构造方法

时间: 2024-09-22 19:44:57

重温面向对象的思想——构造器和重载的相关文章

重温面向对象的思想OOP——封装

面向对象的思想OOP--封装 对象的封装: 封装的目的:隐藏对象的内部细节,将对象进行黑箱操作.用户是不知道对象的内部细节的,同样的道理,用户也不知道你定义的方法. 说明:一个对象(类)的属性,这个属性必须一定是私有属性,用户一定不能直接获取得到属性,必须通过你定义的工程来操作数据(设置.得到), 标准格式:通过定义私有属性的Set方法和Get方法来分别设置.得到私有属性. package demo; public class Student { private double schoolCod

013_《Delphi面向对象编程思想》

<Delphi面向对象编程思想> Delphi 教程 系列书籍 (013) <Delphi面向对象编程思想> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Pdf 作者: 刘艺 [作译者介绍] 丛书名: Borland核心技术丛书 出版社:机械工业出版社 ISBN:7111127722 上架时间:2003-10-10 出版日期:2003 年9月 开本:16开 页码:476 版次:1-1 内容简介 这是一本纯粹讨论dlephi面向对象编程的力作. 本书以精

Silverlight游戏设计:(五)面向对象的思想塑造游戏对象

传说,面向对象的开发模式最初是因为程序员偷懒而不小心诞生的.发展至今,人们从最初的热忠于 讨论某某语言是否足够面向对象到现在开始更广泛的关注面向对象的思想而不是具体内容.面向对象的思 想其实并不深奥,它存在的目的只有一个:让程序开发更贴近我们的现实世界. 还记得猫.猫叫:狗.狗吃东西吗?无数的程序员都喜欢将此类似的情形设计当作面向对象最好的例 子.是的,非常生动且形象:但实际运用中你是否能真正做到举一反三? 回述到游戏设计中,大家是否时常会感觉游戏世界与我们的真实世界如此贴近?游戏中的精灵好比我

java语言学习002_面向对象编程思想

      人类在认识世界时,为了方便自己和智慧提升,很自然的对事物进行了分类.对世界进行了抽象,若把所有各个事物看做对象,纵观所有对象,这些对象具有各自的或共有的特征,并且又有共有的或各自的的能力,这样就可以对具有相同一些特征和一些能力的事物进行了归类.       比如,车,有汽车,火车他们都有哪些属性?                  汽车,特征:长度,颜色,速度,轮胎,载重,平面行走--能力:移动,载东西,--                  火车,特征:长度,颜色,速度,轮胎,载重

求助、面向对象的思想查找字符串中的数字

问题描述 要用面向对象的思想来查找字符串中的数字.实现判断某个字符是否位数字的方法如下:publicstaticboolgetNumeric(stringstr){boolb=false;string[]ArrayInt=newstring[]{"1","2","3","4","5","6","7","8","9","

将面向对象的思想带入TC

写TC貌似是很简单的工作,但当动手写的时候往往会出现,不知道写什么,又感觉有一堆的东西需要写,即使一个简单的日常也会觉得里面的逻辑非常复杂,然后就是晕得不知所向. 个人认为,写TC没有固定的模式,也没有唯一的答案,每个人的方式不同,习惯不同,TC中的如何分类归纳也就自然不相同.但目标是一致的,基本目标是覆盖需求.无盲区:加强目标是加深测试点,完善用户友好性等. 下面分享下我写TC的几种思路. 第一种思路--先对象,后流程 面向对象是在平常入门学习中 首先接触到的概念,它不仅仅存在于代码的编写中,

重温面向对象OOP——static关键字

重温面向对象OOP--static关键字 1. 静态的变量 对一个类的静态变量A来说,实例化出的每一个对象,都有自己的A变量 public class Yuan(){ private static final double PI =3.1415926; ... } -该类实例化出A.B对象的时候,两个对象各自都拥有自己PI变量 //做为静态的变量,是将类名作为它的名称空间,可以这样 //取到静态变量 System.out.printfLn(Yuan.PI); Java程序设计领域中,养成的良好习

全方位讲解Java的面向对象编程思想_java

什么是面向对象?Object 对象,Oriendted 以-为导向的, Programming 程序设计 面向对象就是使用对象进行程序设计,简写成OOP. SP和OOP对比 面向对象的三大原则      封装  继承   多态 对象 对象是面向对象编程的核心部分,是实际存在的具体实体,具有明确定义的状态和行为: 对象其实就是"数据"和"函数"的封装体,其中: 数据表示自身的状态,也称作"属性"或"成员数据": 函数表示自身的功

面向对象设计思想(C#)

       有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿.不能飞翔,就少了几许灵动的气韵.我们需要给代码带去温暖的阳光, 让僵冷的翅膀重新飞起来.结合实例,通过应用OOP.设计模式和重构,你会看到代码是怎样一步一步复活的. 为了更好的理解设计思想,实例尽可能简单化.但随着需求的增加,程序将越来越复杂.此时就有修改设计的必要, 重构和设计模式就可以派上用场了.最后当设计渐趋完美后,你会发现,即使需求不断增加,你也可以神清气闲,不用为代码设计而烦恼了.       假定我们要设计一个媒体播放