##一、面向对象
###1、面向过程和面向对象
面向过程
分析问题的步骤,然后逐步实现。
面向对象
(1)面向对象基于面向过程
(2)面向对象是找出解决问题的人,然后分配职责。
(3)对象中包含解决问题的步骤
面向对象更接近人的思想
面向对象的优势:高复用,高维护,高扩展
##二、类和对象
###类
类是具有相同属性和行为的一类事物的总称。
类中包含成员变量和成员方法。
####1、例子
public class Student{
int age;//成员变量
//成员方法
public String study(String something){
return something;
}
}
####2、private关键字
被private修饰的成员变量或者成员方法只能在该类中使用。
public class Student{
//被private修饰的成员变量可通过在类中定义成员方法进行获取或者修改
private int age;
public int getAge(){
return age;
}
}
####3、构造函数
#####作用:初始化类
public class Student{
//被private修饰的成员变量可通过在类中定义成员方法进行获取或者修改
private int age;
public Student(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
####4、this关键字:指代实例后的对象
作用场景:类中成员变量和局部变量名称相同的时候。
如果局部变量和成员变量重名,java采用就近原则
####5、成员变量和局部变量的qubie
区别 | 详情 |
---|---|
在类中的位置 | 1、成员变量位于类中。 2、局部变量位于类中的方法中。 |
在内存中的位置 | 1、成员变量位于堆中。 2、局部变量位于栈中。 |
生命周期 | 1、成员变量随着对象的创建而创建,随着对象的消失而消失。 2、局部变量随着成员方法的调用而创建,随着方法的弹栈而消失。 |
初始化后的值 | 1、成员变量有初始化值。 2、局部变量没有初始化值。 |
###对象
对象是类的实例化
一个类可以实例无数对象
##三、封装
###1、从数据角度讲
封装将多个基本数据类型封装成自定义数据类型。
封装可以保护数据安全。
###2、从行为角度讲
封装隐藏实现的步骤,对外提供接口访问。
###3、从设计角度来讲
####(1)、分而治之
将需求拆分,用多个类协同实现,而不是一个类实现所有功能。
####(2)、封装变化
每个变化点做成一个类
####(3)、高内聚
一个类应该只实现一个功能
####(4)、低耦合
类与类之间的数据交流应该尽可能少