面向对象
认识面向对象
面向对象是一种思想,完成事情的一种思想.从面向过程演化而来的
面向对象(Oriented Object) : 面向对象的需求分析,软件测试…
我们学习的是面向对象的程序设计 (Oriented Object Programming)
面向对象思想 : 面向过程思想,无论什么事情亲力亲为. 面向对象思想,无论什么事情找对象去完成
面向过程思想是一个执行者,面向对象思想是一个指挥者.
符合人们的思维方式,人们的做事方式,贴近于生活.
生活中的面向对象 (指挥对象做事)
无论什么事情,都指挥对象去完成,有对象指挥对象,没有对象,创造对象,指挥对象.
对象 : 生活中真实存在的事务,就是对象. (世间万物皆对象)
案例 : 使用洗衣机洗衣服. 买个洗衣机,拥有了这个对象
洗衣机应该具备洗衣服的功能,可以指挥洗衣机为你洗衣服 (调用洗衣功能)
类与对象
类: 定义关键字class. 类的含义 : 一类事务具备的特性的抽象表示形式
一类事务
饮料(可乐,雪碧,酸梅汤)
手机(Meta20, Iphone11)
抽象表示形式
人类(中国,外国)
表示 : 人具备姓名,具备年龄,民族. 人就应该有这些内容
但是每个人的细节不一样
类和对象关系怎么理解
手机是确实存在的一个事务 (对象)
类是生产这个手机的图纸
对象是由类产生的
创建类和对象
-
创建类
要求 : 创建手机类, 规定手机该有什么,但是不具体
/*
* 创建好的手机类
* 规定手机该有什么
* 属性 : 属于你的特性 变量
* 行为 : 功能 方法
*
* 手机品牌 手机颜色 手机内存 都是属于手机的
* 不属于打电话功能
*
* 打电话功能,属于手机的
*
* 变量和方法: 这个类的成员
* 成员变量
* 成员方法
*/
public class Phone {
//手机品牌
String brand ;
//手机颜色
String color;
//手机内存
int memory;
//手机行为,打电话
public void call() {
System.out.println("手机打电话");
}
}
-
创建对象
对象是由类产生的,必须先定义类,才能创建对象
创建对象格式 :
类的名字 变量名 = new 类的名字(); 变量名也称为对象名
-
指挥对象做事情
对象调用格式:
.调用符号 变量名(对象名).成员变量 变量名(对象名).成员方法()
public static void main(String[] args) { //创建手机类的对象!! //类的名字 变量名 = new 类的名字(); 是引用数据类型 Phone p = new Phone(); //调用类的成员变量赋值 p.brand = "华为"; p.color = "黑色"; p.memory = 8; //调用类的成员变量获取赋值 (输出) System.out.println(p.brand); System.out.println(p.color); System.out.println(p.memory); //调用类的成员方法 p.call(); }
对象的内存图
创建对象和成员调用
public class Person {
//人的姓名
String name ;
//人的年龄
int age;
//人的性别
char gender;
//人的吃饭行为
public void eat() {
//eat方法中,输出 name age gender
System.out.println("人在吃饭" + name + age + gender);
}
//人的睡觉行为
public void sleep() {
System.out.println("人在睡觉");
}
}
public static void main(String[] args) {
//创建Person类型对象
Person p = new Person();
//对象的成员变量赋值
p.name = "张三";
p.age = 20;
p.gender = '男';
//对象的成员变量获取值,直接输出
System.out.println(p.name);
System.out.println(p.age);
System.out.println(p.gender);
//对象的成员方法
p.eat();
p.sleep();
System.out.println("============");
//再次创建Person类型对象
Person p2 = new Person();
//对象的成员变量赋值
p2.name = "李四";
p2.age = 22;
p2.gender = '女';
//对象的成员变量取值,输出
System.out.println(p2.name);
System.out.println(p2.age);
System.out.println(p2.gender);
//对象的成员方法
p2.eat();
p2.sleep();
}