Java编程思想4读后小记

3.4

本节讲到Java的赋值的内容,需要区别的是基本类型(int,bool)的赋值和对象的赋值不太一样。对象之间的赋值,实际是将"引用"从一个地方复制到另一个地方。这意味着如果对对象使用c=d,那么c和d都指向原本只有d指向的那个对象,这个时候对c或者对d对象做更改,c和d都会改变。这种现象称为Java的“别名现象”

3.7

本节讲到关系操作符时,又一次体现了对象引用的的知识,当两个对象进行“==”操作符进行比较的时候,其实比较的是这两个对象的引用地址,而不是内容。

请看书本上面带的例子

public class Equivalence{

    public static void main(Sting[] args){

    Integer n1 = new Integer(47);

    Integer n2 = new Integer(47);

    System.out.println(n1 == n2);

    System.out.println(n1 != n2);

    }

}


/*Output:

false

true

*

所以对象的比较实用equals()。自定义类就要覆盖equals方法来实现比较了。

6.3

类里面接口的顺序可能会采用public,protected,private的次序来创建,这样便于使用者从头读起,首先阅读对他们最重要的部分

6.4

类既不可以是private的,也不可以是protected的,如果希望增加访问权限,可以把构造器都指定成private,从而阻止任何人创建该类的对象,但是有一个类外,就是你在该类的static成员内部可以创建

class Soup2{

     private Soup2(){}

     private static Soup2 ps1 = new Soup2();

     plublic static Soup2 access(){

        return ps1;

    }

}

这种方式也是传说中的单例设计

7.3

Java的代码复用只要方式是组合和继承,代理也是一种方式。代理其实就是用一个类对另一个类进行了封装,提供接口给外部调用。

7.4.2

Java的基类如果拥有一个多次被重载的方法,那么在这个基类的子类中该方法不会被屏蔽,这点和c++的继承不一样

@Override注解的作用,当你重载了原本是需要覆写的基类方法时,编译器会报错

7.8.3

final的一个用途是用来修饰类或者类的方法,禁止继承和覆盖。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值