加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

【读书笔记】Core Java for the Impatient 第二章

发布时间:2020-12-15 00:43:38 所属栏目:C语言 来源:网络整理
导读:Object-Oriented Programming Static variables don’t belong to any objects. Static methods are not invoked on objects. An inner class is a nonstatic nested class. Its instances have a reference to the object of the enclosing class that cons

Object-Oriented Programming

  • Static variables don’t belong to any objects. Static methods are not
    invoked on objects.

  • An inner class is a nonstatic nested class. Its instances have a reference to the object of the enclosing class that constructed it.

  • You can never write a method that updates primitive type parameters.


Default Initialization

Instance variable is automatically set to a default value: numbers to 0,boolean values to false,and object references to null.
In this regard,instance variables are very different from local variables. Recall that
you must always explicitly initialize local variable

Static Variables and Methods

Since static methods don’t operate on objects,you cannot access instance variables from a static method. However,static methods can access the static variables in their class

Packages

It is a good idea to run javac with the -d option. Then the class files are generated in a separate directory,without cluttering up the source tree,and they have the correct subdirectory structure.

A source file can contain multiple classes,but at most one of them can be declared public. If a source file has a public class,its name must match the class name.

Nested and Inner Classes

Nested Classes

Use a static nested class when the instances of the nested class don’t
need to know to which instance of the enclosing class they belong. Use an inner class only
if this information is important.


public class Invoice {
    private static class Item { // Item is nested inside Invoice
        String description;
        int quantity;
        double unitPrice;
        double price() { return quantity * unitPrice; }
    }
    private ArrayList items = new ArrayList<>();
    …
}

There is nothing special about the Item class,except for access control.
If you change the keyword private into public,there is essentially no difference between this Invoice.Item class and a class InvoiceItem declared outside any other class.
Nesting the class just makes it obvious that the Item class represents items in an invoice.


Inner Classes

public class Network {
    public class Member {
        …
        public void leave() {
            members.remove(this);
        }
    }
    private ArrayList members;
    …
}

A method of an inner class can access instance variables and methods of its outer class. In this case,they are the instance variables of the outer class object that created it

Comments

//TODO

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读