面向对象:
世间万物皆对象
用类的形式描述现实中的事物
功能=方法
属性=变量
大象放进冰箱 开门 关门 存大象
分析:
具体存在的事物:冰箱 大象
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方法对其进行访问 |
注意:私有仅仅是封装的体现形式而已 |