《Thinking in java》第一章读书笔记
对象导论
面向对象语言的特性
- 万物皆对象
- 可以存储数据
- 在自身操作
- 程序是对象的集合,他们通过发送消息来告知彼此要做的
- 对每个特定对象的方法的调用
- 每个对象,都有,自己的,由其他对象所构成的,存储
- 万物皆Object
- 你在这个对象声明的一个属性,他的数据类型是属于别的对象的
- 每个对象都拥有其类型
- 某一特定类型的所有对象都可以接受同样的消息
- 这里就是继承,抽象的概念
public class Test { public static void main(String[] args) { Animal dog = new Dog("旺财","dog"); System.out.println("I hava a "+ dog.getType() ); } } //抽象 class Animal{ private String type; public Animal(String type) { this.type = type; } public String getType() { return type; } public void setType(String type) { this.type = type; } } //继承 class Dog extends Animal{ private String name; public Dog(String name, String type) { super(type); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
每个对象都提供服务
我这边的理解就是你创建一个类,那么这个类的具体实现(对象)
可以提供什么服务呢?
多种服务的组合就是实现这一项功能的
被隐藏的具体实现
- public 所有的人都可以访问
- private 类的创建者跟内部(本类)可以访问
- protected 继承者可以访问
多态
class Test{
public static void main(String[] args){
Aniaml dog = new Dog(); //向上转型
doSomething(dog);
}
public void doSomething(Animal animal){
System.out.println(animal.getName()+"正在...");
}
}
//animal 跟dog类不想写了,任性
继承
Java继承有一个特性,那就是单根继承,也就是万物都继承Object
参数化类型
泛型 例如List<?> 这样的