- 面向对象:objects, messages, classes, and inheritance,
- 语言基础:variables, arrays, data types, operators, and control flow.
- 类和对象
- 声明
- 界面
- 数和字符 :
Number
andString
objects - 泛型
- 包
一、面向对象
objects, classes, inheritance, interfaces, and packages是如何联系现实世界?
Object:对象是一个包含相关状态和行为的软件包,如你的狗,你的桌子,你的自行车。
对象有2个特点: state 和 behavior
- state: name,color ,breed品种, hungry饥饿
- behavior:barking吠叫, fetching抓人, wagging tail 摇尾巴
隐藏内部状态(fields or variables)并要求通过对象的方法(Methods or Function)执行所有交互被称为数据封装-面向对象编程的基本原则
- 模块化:对象的源代码可以独立于其他对象的源代码编写和维护。一旦创建了一个对象,就可以在系统中轻松地传递。
- 信息隐藏:通过只与对象的方法交互,其内部实现的细节对外部世界保持隐藏。
- 代码重用:如果一个对象已经存在(可能由另一个软件开发人员编写),则可以在程序中使用该对象。这允许专家实现/测试/调试复杂的、特定于任务的对象,然后可以信任这些对象在自己的代码中运行。
- 可插入性和调试的容易性:如果一个特定的对象出现问题,您可以简单地从应用程序中删除它,并插入另一个对象作为它的替换。这类似于在现实世界中解决机械问题。如果一个螺栓断裂,你就要更换它,而不是整个机器。
Class:你的自行车是一个实例instance。类是创建单个对象的蓝图。没有 main,因为他是蓝图,可能被用于某个main.
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}
class BicycleDemo {
public static void main(String[] args) {
// Create two different
// Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on
// those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike2.changeCadence(50);
bike2.speedUp(10);
}
}
inherit ance :继承 面向对象编程允许类从其他类 继承 常用的状态和行为 superclass subclasses:
class MountainBike extends Bicycle {
// new fields and methods defining
// a mountain bike would go here
}
Interface:在最常见的形式中,接口是一组具有空实体的相关方法。自行车的行为(如果指定为接口)实现一个接口允许一个类对它承诺提供的行为变得更加正式。接口在类和外部世界之间形成一个契约,这个契约在编译时由编译器强制执行。如果类声明实现了接口,则该接口定义的所有方法必须出现在其源代码中,然后类才能成功编译。
二、语言基础: