ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java编程思想学习笔记-二

2019-08-26 14:40:07  阅读:292  来源: 互联网

标签:初始化 Java 编程 Tree 构造 笔记 Rock new


title copyright date tags categories
Java编程思想学习笔记(二) true 2019-08-10 03:50:06 -0700
Java
Java

初始化与清理

随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一,初始化与清理正是涉及安全的两个问题。

许多c程序的错误都源于程序员忘记初始化变量。清理也是一个特殊问题,当使用完一个元素时,它对你也就不会有什么影响了,所以很容易把它忘记。这样一来,这个元素占有的资源就会一直得不到释放,结果是资源(尤其是内存)用尽。

Java中采用了构造器,这是一个在创建对象时被自动调用的特殊方法,并额外提供了“垃圾回收器”。对于不再使用的内存资源,垃圾回收器能自动将其释放。

用构造器确保初始化

可以假想为编写的每个类都定义一个initialize()方法。

该方法的名称题型你在使用其对象之前,应首先调用initialize()

在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化。创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造器,从而保证了初始化的进行。

如何命名

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

class Rock {
    Rock() {
        System.out.print("Rock ");
    }
}
public class SimpleConstructor {
    public static void main(String[] args) {
        for(int i = 0; i < 10; i++){
            new Rock();
        }
    }
}
输出:
    Rock Rock Rock Rock Rock Rock Rock Rock Rock Rock

现在,在创建对象时:

new Rock();

将会为对象分配存储空间,并调用相应构造器。

不接受任何参数的构造器叫做默认构造器。和其他方法一样,构造器也能带有形式参数,以便指定如何创建对象。

class Rock2 {
    Rock2(int i) {
        System.out.print("Rock " + i + " ");
    }
}
public class SimpleConstructor {
    public static void main(String[] args) {
        for(int i = 0; i < 6; i++){
            new Rock2(i);
        }
    }
}
输出:
    Rock 0 Rock 1 Rock 2 Rock 3 Rock 4 Rock 5

有了构造器形式参数,就可以在初始化对象时提供实际参数。例如假设类Tree有一个构造器,它接受一个整型变量来表示数的高度

Tree t = new Tree(12);

如果Tree(int)Tree类中唯一的构造器,那么编译器将不会允许你以其他任何方式创建Tree对象。

构造器有助于减少错误,并且使代码更易于阅读。在Java中,“初始化”和“创建”捆绑在一起,两者不能分离

构造器是一种特殊类型的方法,因为它没有返同值。

这与返回值为空(void)明显不同。对于空返回值,尽管方法本身不会自动返回什么,但仍可选择让它返回别的东西。

构造器则不会返回任何东西,你别无选择(new表达式确实返回了对新建对象的引用,但构造器本身并没有任何返回值)。假如构造器具有返回值,并且允许人们自行选择返回类型,那么势必得让编译器知道该如何处理此返回值。

标签:初始化,Java,编程,Tree,构造,笔记,Rock,new
来源: https://blog.csdn.net/qq_43442524/article/details/100077118

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有