面向对象(Oriented Object)
是相对于面向过程而言的,过程其实就是函数,对象是将函数和属性进行了封装。
- 将复杂的问题简单化。
- 面向对象将以前的过程的执行者,变成了指挥者。
- 面向对象思想是符合人们思考习惯的一种思想。
面向对象的三大特征
- 封装(Encapsulation)
- 继承(Inheritance)
- 多态(Polymorphism)
编程思想:
面向过程:做某件事情都需要自己情亲历亲为,按照步骤去完成。
面向对象:做某件事情都不需要自己情亲,只需要指定特定的对象去完成即可。
- 现实世界就是有对象组成的(可不是指男朋友或者是女朋友哦!)
如下图,万物皆是对象
面向对象设计和开发程序的好处
- 交流更加流畅
- 提高设计和开发效率
- 面向对象的思想符合人类思维习惯
类和对象的概念
- 类是对某一事物的描述,是抽象的,概念上的定义(通俗的来说就是具有某些特征的集合物)
- 对象是实际存在的事物的个体,是具体的、现实的。(类到具体某一实物的反应)
成员变量和局部变量区别
成员变量:定义在类中,有初始值
局部变量:定义在方法中,无初始值
方法的重载(OrverLoad):
- 在同一个类中,同一个方法名
- 参数列表不同(个数不同,顺序不同,类别不同)
- 方法的重载与返回值无关
类 :
package OOP;
public class Car {
String name;
String color;
int price;
//定义成员变量name,color,price,系统给赋予初始值
public Car(String name,String color,int price){
this.name=name;
this.color=color;
this.price=price;
System.out.println("火拳");
}
public Car(String name,String color){
this.name=name;
this.color=color;
System.out.println("路飞");}
//重载,根据对象定义的个数,顺序,类型进行方法的选择
public void run(int a){
a=10;//定义一个局部变量,手动赋值
System.out.println(name+"飞快的行驶");
}
public void stop(){
System.out.println(name+"停止");
}
}
对象:
package OOP;
public class Car1 {
public.static.void.main(String[] args) {
//(方法一)在堆中创建一个新的空间并命名并定义(重载)
Car bm=new Car("大众","黑色",120000);
Car bm=new Car("奥迪","白色");
//(方法一)在堆中创建一个新的空间并命名并定义
//(方法二)先在堆中创建一个新的空间,然后定义
Car bm1=new Car();
bm.color="黄色";
bm.name="宝马x6";
bm.price=150000;
//复制、粘贴方法区的地址
bm.run();
bm.stop();
//输出所需要输出的内容
System.out.println(bm.name);
System.out.println(bm.color);
System.out.println(bm.price);
}
}
-
JAM的内存划分
区域名称 | 作用 |
寄存器 | 给CPU使用,和开发无关。 |
本地方法栈 | JVM在使用操作系统功能的时候使用,和开发无关。 |
方法区 | 存储可以运行的class文件。 |
堆内存 | 存储对象,new来创建的,都存储在堆内存。 |
方法栈 | 方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 |