面向对象:
世间万物皆对象
用类的形式描述现实中的事物
功能=方法
属性=变量
大象放进冰箱 开门 关门 存大象
分析:
具体存在的事物:冰箱 大象
class 冰箱{ 开门(){} 关门(){} 存储大象(大象 d){} } |
class 大象{
} |
冰箱 a = new 冰箱(); 大象 b = new 大象();
|
属性和方法都属于类的成员
属性:成员变量(写在类中)
方法:成员方法
局部变量(写在方法中)
自定义类:
事物:方法(事物具备的功能)
属性(属于事物的特性)(属性是变量,可赋值,取值)
格式:
public class 类名{ 定义属性 定义方法 } |
定义属性:修饰符 数据类型 变量名 = 值; 定义方法:修饰符 返回值类型 方法名(参数列表){} |
修饰符:表示的是权限 |
创建引用数据类型的格式: 数据类型 变量名 = new 数据类型 ();
|
实现引用类型步骤:
- 导入包(类在同一个文件夹不需要导包)
- 创建引用类型的变量
- 变量.类型中的功能
new phone内存出现哪些内容
|
全局变量(成员变量)与局部变量的区别:
| 定义位置 | 作用域 | 默认值 | 内存位置 | 生命周期 |
成员变量 | 类中,方法外 | 整个类 | 有自己的默认值 | 跟随对象进入堆内存 | 跟随对象进入堆存储,内存等待jvm清理,生命相对较长 |
局部变量 | 方法内,语句中 | 方法内,语句中 | 没有默认值,不赋值不能使用 | 跟随方法进入栈内存 | 跟随方法,进入栈,方法出栈,生命周期较短 |
ArratList集合的使用
步骤:
数据类型<> 变量名 = new 数据类型<> (); <集合存储的数据类型> 集合存储的数据类型:要将数据存储到集合的容器中 创建集合引用变量的时候,必须指定好,存储的类型是什么 ArrayList<String> array = new ArrayList<String>();
|
集合只存储引用类型,不存储基本类型 |
基本数据类型 | 字节数 | 对应的引用数据类型表达式 |
byte | 1 | Byte |
short | 2 | Short |
int | 4 | Integer |
long | 8 | Long |
float | 4 | Float |
double | 8 | Double |
char | 2 | Character |
boolean | 1 | Boolean |
ArrayList集合方法;
方法中的存储类型,定义集合对象时候的类型一致
返回类型:获取元素的类型
返回类型:int
|
创建对象的格式
类名 对象名 = new 类名();
Car c = new Car();
栈:运行方法 main()方法压栈
堆:存储容器 数组,对象
对象在堆内创建后,类的成员变量跟随对象进入到堆内存中,赋默认值。
栈:
|
堆;
new Car()
|
run()是c调用。run()弹栈 main()弹栈
方法参数类型;
基本数据类型:八个
引用数据类型:传递的是内存地址
栈: 出栈死亡
main
|
堆;
new Person()
name=null name=zbm name=wj |
栈:
main
|
堆:
new person()
|
|
this:区分成员变量和局部变量的同名情况 方法中想访问成员变量,写this。 |
封装:方法 类
好处:
|
private:权限修饰
对私有变量提供公共的访问方式:写法
set()赋值
get()取值
public void setAge(int age) { this.age=age; } public int getAge() { return age; } |
总结:
类中不需要对外提供的内容都私有化,包括属性和方法 属性私有化,并提供get/set方法对其进行访问 |
注意:私有仅仅是封装的体现形式而已 |