面向对象设计思想的要点:
认为客观世界由各种对象组成
程序的分析和设计都围绕着:
有哪些对象类;
每个类都有哪些属性、哪些方法;
类之间的关系(继承,关联等)
对象之间发送消息(调用方法)
封装:
模块化:将属性和行为封装到类中,程序定义很多类
信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类
class Person{
private int age;
public int getAge(){ return age; }
public void setAge(int a){ age=a;}
String name;
void sayHello(){…}
}
继承:
继承性:
父类和子类之间共享数据和方法
继承的好处:
更好的进行抽象与分类、增强代码的重用率、提高可维护性
class Person{
int age;
父类: String name;
void sayHello(){…}
}
class Student extends Person{
String school;
子类: double score;
void meetTeacher(){ … }
}
多态性:
多态:
不同的对象收到同一个消息(调用方法)产生完全不同的效果
实现的细节则由接受对象自行决定
例 foo( Person p ){ p.sayHello(); }
foo( new Student() );
foo( new Teacher() ); 两者的区别:
一、从概念方面来说
基本数据类型:变量名指向具体的数值
引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值
二、从内存构建方面来说
基本数据类型:变量在声明之后java就会立刻分配给他内存空间
引用数据类型:这类变量声明时不会分配内存,只是存储了一个内存地址。
三、从使用方面来说
基本数据类型:使用时需要赋具体值,判断时使用“==”号
引用数据类型:使用时可以赋null,判断时使用equals方法