《Java开发实战经典》笔记

1.引用数据类型(class, array等),其实就是分栈内存和堆内存的数据类型,在栈内存中存储对象, 在堆内存中存具体值。《Java开发实战经典》笔记_第1张图片

因为数组是引用数据类型,所以数组变量保存的并非是数组的实体,而是数组堆内存的地址。

2.对于引用数据类型,比如数组传递进方法中后,如果方法对数组本身做出了修改,修改结果也将保存下来,即使方法没有返回值,修改的结果也将保存。(这也能够理解为什么用setter 设置对象属性后getter就能输出修改的内容)


3.被封装的属性或方法只能在其类的内部被调用,而不能在类的外部调用。

4.setter的作用是为属性赋值,赋值之后这个属性值就改变了,在主方法中用getter的话得到的值就是修改的值。

5.new Person("Oscar", 30).tell(); 这个是匿名对象的方法使用格式!

6.使用new关键字的话,不管怎么样都会开辟新的堆内存空间,而String str="Hello"的形式可能情况会不同。

7.一定记住字符串的内容一旦声明不可改变

《Java开发实战经典》笔记_第2张图片

一个String对象的内容的改变实际上是通过内存地址的断开和连接完成的,而字符串本身的内容没有任何改变,即虽然你没有用new关键字,但程序自动开辟了一个新的堆内存。

8.引用传递是指将堆内存空间的使用权交给多个栈内存。

9.《Java开发实战经典》笔记_第3张图片

将传递参数的name值赋给name中的name属性,即把从构造方法中传递进去的参数值付给属性,这是this的一个用法:在赋值时明确地指出属性!!!。比如“this.name”属性和“this.age”属性。建议以后在类中访问属性时都加上this

10.《Java开发实战经典》笔记_第4张图片

用this调用构造方法优点是可以重复执行this指定的构造方法,很方便,但要注意使用this调用构造方法时必须,也只能放在构造方法的第一行,并且还要留一个出口,也就是说程序中至少存在一个没有包含用this调用构造方法的构造方法。(一般都将无参构造作为出口)

11.对象比较操作是java中比较核心的操作,《Java开发实战经典》笔记_第5张图片

步骤:(1)判断对象地址是否相等;

            (2) 分别判断对象属性是否相等;用 if(p1.compare(p2)) 来判断

p1.name和p1.getName都可以访问或取得对象

12.使用类名访问static属性:

Person.country="B city";

13.String args[]表示的是运行时的参数,参数传递的形式为“Java 类名称  参数1 参数2 参数3”。所有的输入参数都保存在args数组之中。

14.构造块(直接写在类中的代码块);

构造方法;

主方法;

15.

《Java开发实战经典》笔记_第6张图片

16.使用内部类可以方便的访问外部类中的私有属性。使用static定义内部类就可以直接访问内部类中的属性

《Java开发实战经典》笔记_第7张图片

总结:

你不能在主方法类里直接调用内部类Inner,在外部类中可以调用内部类,在主方法中只能调用外部类,或者通过外部类调用内部类(即经过static声明的内部类)。

总结:内部类Inner里面有print()方法,


并且内部类存在于外部类Outer的fun()方法之中,


fun()方法还在Outer外部类中被调用了。 


所以在主方法中用new Outer().fun()来进行赋值,调用方法的操作。


你可能感兴趣的:(《Java开发实战经典》笔记)