资讯专栏INFORMATION COLUMN

《Java编程思想》读后总结(四)

zeyu / 3081人阅读

摘要:初始化与清理构造器通过来创建类的对象。如果一个类没有显式提供构造器,则编译器会为该类自动生成一个默认构造器。构造器采用与类名相同的名称。

初始化与清理 构造器

通过new来创建类的对象。每当调用new来创建对象时,java会调用构造器对象进行初始化。初始化完毕,意味着这个对象已经准备好对外提供服务了。

如果一个类没有显式提供构造器,则编译器会为该类自动生成一个默认构造器。

构造器采用与类名相同的名称。

class Rock {
    Rock() { //This is the constructor
        System.out.println("This is the constructor");
    }
}
重载

Java支持构造器和方法的重载(不是重写override)

区分重载

方法的签名:方法名+参数列表

通过方法的签名来区分重载,所以返回类型不作为区分重载的因素。

this关键字

对当前对象的引用

有了this关键字可以实现在构造器中调用其他重载构造器,如:

class Rock {
    public int id;
    Rock(int id) {
        this.id = id;
    }
    Rock() {
        this(1);
    }
}
初始化

对类变量的初始化有两种方法:

在申明时直接初始化

显式初始化

在构造器内进行初始化

初始化顺序:

通过new创建对象时,对象的初始化顺序:

对申明的变量进行变量的默认值的初始化:变量的申明可以散落在类的定义的不同位置,但初始化时,会按申明的先后顺序,完成初始化然后调用构造函数进行初始化;

调用构造器:如果变量未在申明时就完成初始化,则可以通过构造器完成初始化;

静态数据的初始化优先于非静态数据;

初始化例子
public class Rock {

    public int id = 1; //initialization when define 
    public String name;
    public static String greeting1;
    public static String greeting2;
    public static int age = 1000;
    static{
        greeting1 = "Hello"; //explicitly initialization
    }

    Rock(String name) {
        this.name = name; // initialization in constructor
        greeting2 = "Hi";
    }

    public String location1 = "Shanghai";

    public String getName(){
        return name;
    }

    public String location2 = "China";

    public String getLocation(){
        return location1 + " - " + location2;
    }

    public void greeting(){
        System.out.println(this.greeting);
    }

    public static void main(String[] args){
        Rock r = new Rock("Robin");
        System.out.println("Name: " + r.getName());
        System.out.println("Location: " + r.getLocation());
        r.greeting();
    }
}
数组初始化
可变参数列表

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75867.html

相关文章

  • Java编程思想读后总结(一)

    摘要:前言编程思想这本书,陆陆续续读了年,终于基本都浏览了一遍。每个对象对外暴露接口,程序通过对象暴露的接口向对象发送消息,获取该对象的服务能力。异常处理异常处理,为编写程序阶段提供了一种预见性的防止程序崩溃的出路。 前言 《Java编程思想》这本书,陆陆续续读了1年,终于基本都浏览了一遍。通过这本书,试图理解作者的想法,才真的体会到Java思想。感谢本书的作者,不仅讲述了java的语法,更...

    hufeng 评论0 收藏0
  • Java编程思想读后总结(三)

    摘要:编写一个程序编译器一些规则程序文件的后缀为每个文件名最多包含一个类,也可以没有类当指定某个类为时,该类的类名必须与文件名相同关于写代码时,需要用到其他类库,最常用的就是自带的类库。 编写一个Java程序 编译器:ideal 一些规则 java程序文件的后缀为.java 每个.java文件名最多包含一个public类,也可以没有public类 当指定某个类为public时,该类的类名必须...

    peixn 评论0 收藏0
  • JS程序

    摘要:设计模式是以面向对象编程为基础的,的面向对象编程和传统的的面向对象编程有些差别,这让我一开始接触的时候感到十分痛苦,但是这只能靠自己慢慢积累慢慢思考。想继续了解设计模式必须要先搞懂面向对象编程,否则只会让你自己更痛苦。 JavaScript 中的构造函数 学习总结。知识只有分享才有存在的意义。 是时候替换你的 for 循环大法了~ 《小分享》JavaScript中数组的那些迭代方法~ ...

    melody_lql 评论0 收藏0
  • 代码之髓读后感——如何高效的学习语言

    摘要:代码之髓读后感如何高效的学习语言技术读后感王垠如何掌握程序语言代码之髓这本书里提出了三种学习语言的方法如何高效的学习语言在比较中学习在历史中学习在实践中学习在比较中学习通过比较多种语言,总结出某种语言的独有特点,以及多种语言的共有特点。 title: 代码之髓读后感——如何高效的学习语言date: 2017-07-08 17:17:00categories: 技术tags: 读后感 ...

    ivyzhang 评论0 收藏0
  • 《php之道》读后总结 php学习纲要

    摘要:日期和时间使用类完成读取设置比较和计算日期与时间。单元测试单元测试是从编写开始,贯穿于整个开发周期的一种用于保证函数类和方法的行为与预期一致的编程方法。是应用的单元测试框架的业界标准,其他几个可选框架是行为驱动开发行为驱动开发有两种方式和。 《php之道》阅读地址:http://wulijun.github.io/php-the-right-way/#code_style_guide ...

    gitmilk 评论0 收藏0

发表评论

0条评论

zeyu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<