《Java开发实战经典》笔记

1.引用数据类型(class, array等),其实就是分栈内存和堆内存的数据类型,在栈内存中存储对象, 在堆内存中存具体值。

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

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


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

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

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

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

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


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

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

9.

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

10.

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

11.对象比较操作是java中比较核心的操作,

步骤:(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.


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


总结:

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

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


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


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


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


  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值