面向对象思想概述
面向过程:一步步执行
面向对象:找对象
面向对象思想特点:
- 是一种更符合我们思想习惯的思想
- 可以将复杂的事情简单化
- 将我们从执行者变成了指挥者–角色发生了转换
面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情
面向对象设计:其实就是在管理和维护对象之间的关系
面向对象特征:封装、继承、多态
类与对象概述
我们如何描述现实世界事物
- 属性:就是事物的属性(事物身上的名词)
- 行为:就是该食物能够做什么(食物身上的动词)
Java中最基本的单位是类,即用class描述事物:
- 成员变量:就是事物的属性
- 成员方法:就是事物的行为
类和对象的概念:
- 类:是一组相关的属性和行为的集合
- 对象:是该类事物的具体体现
定义一个学生类
class Student{
String name; //姓名
int age; //年龄
String gender; //性别
public void study(){
System.out.println("学生学习");
}
public void sleep(){
System.out.println("学生睡觉");
}
}
定义一个手机类
class phone(){
String brand;
int price;
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发信息");
}
public void playGame(){
System.out.println("玩游戏");
}
}
使用学生类
public static void main(String[] args){
Student student = new Student();
student.name = "张三";
student.age = 18;
student.study();
student.sleep();
}
使用手机类
public static void main(String[] args){
Phone p = new Phone();
p.brand = "三星";
p.price = 200;
p.call();
p.sendMessage();
p.playGame();
}
一个对象的内存图
class Demo1_Car{
public static void main(String[] args){
Car c1 = new Car();
c1.color = "red";
c1.num = 4;
c1.run();
}
}
class Car{
String color; //车的颜色
int num; //车的轮胎数
public void run(){
System.out.println(color + "..." + num);
}
}
两个对象的内存图
class Demo1_Car{
public static void main(String[] args){
Car c1 = new Car();
c1.color = "red";
c1.num = 8;
c1.run();
Car c2 = new Car();
c2.color = "black";
c2.num = 4;
}
}
class Car{
String color; //车的颜色
int num; //车的轮胎数
public void run(){
System.out.println(color + "..." + num);
}
}
三个引用两个对象的内存图解
class Demo1_Car{
public static void main(String[] args){
Car c1 = new Car();
c1.color = "red";
c1.num = 8;
c1.run();
Car c2 = new Car();
Car c3 = c2;
c2.color = "black";
c2.num = 4;
c3.run
}
}
class Car{
String color; //车的颜色
int num; //车的轮胎数
public void run(){
System.out.println(color + "..." + num);
}
}
垃圾回收机制
当堆中的对象失去引用时,会被Java的垃圾回收机制回收。所以main方法执行完后,c1、c2、c3的引用会被会释放,相应的在堆中的三个car对象会被Java垃圾回收机制回收。