面向对象思想
面向过程:
强调的是过程,所有事情都需要自己完成
面向对象:
是一种更符合我们思想习惯的思想(懒人思想,自己不做事情,把事情交给别人去做),可以将复杂的事情简单化(对使用者来说变简单了,对象里面还是很复杂的),将我们从执行者变成指挥者,角色发生了改变
定义:
首先根据客户的需求抽象出业务逻辑对象;
然后对需求进行合理的分层;
构建对性的独立的业务模块;
之后进行设计业务逻辑,利用封装、继承、多态、抽象的思想实现实际业务需求;
最后通过整合各个模块,达到高内聚、低耦合的效果,从而满足客户的需求
抽象数据类型
什么是抽象数据类型?
将同数据类型的数据组合成一个整体用来描述一种新的事物
什么是类?
类定义了一种抽象数据类型
不淡定以来抽象数据类型的组成(成员变量),还定义了可以对该类型实施的操作(方法)。
类与对象的关系
1.定义成员变量:
类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述该类型对象共同的数据结构。
JAVA语言中,类的成员变量的定义可以使用如下语法:
class 类名{
成员变量类型 变量名称;
…
}
成员变量的类型 | 默认初始值 | ||||
---|---|---|---|---|---|
数值类型(byte,shout,int ,long ,float,double) | 0 | ||||
boolean型 | false | ||||
char 型 | /u0000 | ||||
引用类型 | null |
2.定义类中的方法
类中除了定义成员变量,还可以定义方法,用于描述对象的行为,封装对象的功能
JAVA语言中,可以按照如下方式定义类中的方法:
class 类名{
修饰词 返回值类型 方法名称(【参数列表】){
方法体…
}
…
}
例:
1.新建一个实体类
package cn.tedu.day05;
public class PhoneTest {
String name,brand,color,sb;
int price;
public void print(){
System.out.println("名字:"+name);
System.out.println("品牌:"+brand);
System.out.println("价格:"+price);
System.out.println("颜色:"+color);
}
public void call (String sb){
System.out.pntln("打电话给"+sb);
}
public void text(String sb){
System.out.println("发短信给"+sb);
}
}
2.调用这个实体类
package cn.tedu.day05;
public class ObjectDemo {
public static void main(String[] args) {
System.out.println("------------------------------------");
PhoneTest pt = new PhoneTest();
pt.brand = "iPhone";
pt.color = "white";
pt.name = "iPhoneXS";
pt.price= 8000;
pt.print();
pt.call("啊哈哈");
pt.text("哦呵呵");
System.out.println("------------------------------------");
PhoneTest pt1 = new PhoneTest();
pt1.brand = "华为";
pt1.color = "blue";
pt1.name = "华为P30 pro";
pt1.price= 5000;
pt1.print();
pt1.call("啊哈");
pt1.text("哦呵");
System.out.println("------------------------------------");
PhoneTest pt11 = new PhoneTest();
pt11.brand = "小米";
pt11.color = "black";
pt11.name = "小米note9";
pt11.price= 3000;
pt11.print();
pt11.call("啊哈哈哈");
pt11.text("哦呵呵呵");
}
}
成员变量和局部变量
1.定义位置:
成员变量定义在类中
局部变量定义在方法中
2.作用域:
成员变量作用在整个类中
局部变量只作用在定义的方法中或者语句中
3.在内存中的位置
成员变量存储在堆内存中,并且在堆内存中自动赋予初始值
局部变量存储在栈内存中,不会自动赋值
4.生命周期
成员变量在对象创建的时候存储在堆内存中,在对象被回收的时候销毁
局部变量存储在栈中,在方法或者是语句被执行的时候创建,方法或者是与举止行为被销毁
修饰符
修饰符 | 本类 | 同一个包中的类 | 子类 | 其他类 |
---|---|---|---|---|
public | 可以访问 | 可以访问 | 可以访问 | 可以访问 |
protected | 可以访问 | 可以访问 | 可以访问 | 不能访问 |
默认 | 可以访问 | 可以访问 | 不能访问 | 不能访问 |
private | 可以访问 | 不能访问 | 不能访问 | 不能访问 |
封装
定义:对外提供可调用的、稳定的功能
封装容易变化的、具体的实现细节,外界不可访问,这样的意义在于:
1.降低代码出错的可能性,便于维护
2.当内部的实现细节改变时,只要保证对外的功能定义不变,其他的模块就不会因此而受到牵连