文章目录
1.面向对象
优点:耦合性低,扩展性强,组件复用性强。
缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统设计。
面向过程:
优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本低。
缺点:很难解决非常复杂的业务逻辑,耦合性高,造成扩展性差,没有独立提的概念,无法达到组件复用。
- 面向对象的三大特征:
封装,继承,多态。
采用面向对象的方式开发一个软件,生命周期当中,基于面向对象分为三个阶段:
面向对象的分析:OOA
面向对象的设计:OOD
面向对象的编程:OOP
什么是类?
现实世界当中不存在,是一个模板,是一个概念,是人类大脑思考抽象的结果,将具有共同特性的对象抽象出来的模板,这个模板叫做类。
什么是对象?
对象是实际存在的个体,现实世界当中实际存在。是类的一个实体。
软件开发过程:
在现实世界中,观察对象,将具有相同特征的对象,通过JAVA语言,定义一个类,即模板。然后通过类就可以创建对象,有了对象之后,可以让对象直接协作起来形成一个系统。 - 类的实例化为对象。
- 对象抽象化为类。
重点:类描述的是对象的共同特征,属性和方法,在访问其对象的时候,必须先创建对象,通过对象去访问这个特征。因为属性和方法对应某个对象之后,值不同(属性),打篮球的是否能灌篮不同(方法),但他们都有身高,都会打篮球。
2. 类的定义
结构:
[修饰符列表] class 类名{
属性:
方法:
}
引用数据类型:String.class(sun提供)
Student.class 自定义
类是引用数据类型。跟基本数据类型区分开来。
3.对象的创建和使用
- 成员变量(实例变量)需通过创建对象去访问,当创建对象后,变量的内存空间才会创建。
- 实例化对象语法:new 类名();
Student s = new Student();
s为局部变量(s在栈内存中)s为引用,是对象在堆内存的地址,所以s不是对象。 - 什么是对象?
new运算符在堆内存中开辟的内存空间称为对象。 - 什么是引用?
引用是一个变量,只不过这个变量中保存了另一个java对象的内存地址。
注意:
*java语言当中,程序员不能直接操作堆内存,java屏蔽了指针,不像c语言。
*在java中,只能通过“引用”‘去访问堆内存当中对象内部实例变量。 - new是java运算符
- new运算符的作用是创建对象,在JVM堆内存当中开辟新的内存空间。
- 方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间中。
- 栈内存:方法代码执行的时候,会给该方法分配栈内存空间。
- 堆内存:new的对象在堆内存中存储。
读取数据
语法:引用.变量名(很像c语言的结构体)。
- 局部变量在栈内存中存储。
- 成员变量中的实例变量在堆内存的java对象内部存储。实例变量是一个对象一份。
- 对象中的实例变量只有通过对象才能访问,不能直接通过“类名”访问。
- 类为引用数据类型,可以声明变量,故自定义的类可以声明变量。如String即为引用数据类型,其为sun公司定的。
public class Adress{
String city;
String town;
}
public class user{
int age;
String name;
Adress addr;
}
public class firstOO{
user u = new user();
u.age = 10; - u.addr = new Address();//等价于Address a= new Address();u.addr=a;
//访问城市
u.addr.city = “Shanghai”; - }
u.add是一个引用。其保存了对象Address的地址。
引用时一个变量,变量包括局部变量和成员变量。