java17(面向对象)
1.面向过程:所有事情都是按顺序一件件做,未知主体
买菜,做饭,吃饭,洗碗
面向对象:将功能封装到对象之中,让对象去实现功能
去饭馆,告诉服务员要吃啥,然后等着端上来。
面向对象的目的:
复杂的东西简单化,
将面向过程中的执行者变成了指挥者
面向对象的三大特性:封装,继承,多态
2.对象:特性,行为,对象也叫实例
万物皆对象
类:多个对象,具有相同状态行为的一类事物
类的实例化:将描述转为具体的过程
将类具体到某一个对象上面,该对象具有什么的状态特征和什么行为
类:用来描述事物
对象:具体的某个事物
3.对象的状态特征用成员变量来表示
如姓名,身高,体重
对象的行为用方法来表示
如唱歌跳舞
类的定义:
注意:有public时,此类的名称与java文件名称相同
类的名称首字母必须大写
4.创建对象:创建类---->创建对象----->类的实例化
类名 对象名称 = new 类名();
一个类可以创建多个对象
创建类
class Person{
String name;
int age;
int num;
void sing(String singName) {
System.out.println("唱"+singName);
}
void dance(String danceName) {
System.out.println("跳"+danceName);
}
}
创建对象
Person wxl=new Person();
赋值
wxl.name="哈哈哈";
取值
System.out.print(wxl.name);
【哈哈哈】
对象调用方法
wxl.dance("爵士");
【哈哈哈跳爵士】
5.jvm的内存划分(更好的了解对象在内存中的存取)
方法区(字节码,静态变量,常量)
虚拟机栈(存放方法/函数)
本地方法区(存放方法)
堆(存放创建的对象和数组【使用了new】)
计数器(记录当前执行的指令)
6.栈:(一种数据结构)先进后出
入栈(元素放入栈里),栈顶,栈底,出栈,
栈帧:存放成员变量
调用每个方法都会创建自己的栈帧,每个栈帧里都有自己的成员变量
执行指令时:先是main方法栈帧入栈,再是其他方法栈帧入栈。