面向对象
认识面向对象
面向对象是一种思想,完成事情的一种思想.从面向过程演化而来的
面向对象(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(); }
对象的内存图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tgy785bX-1594381493707)(images/对象内存图.JPG)]
创建对象和成员调用
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(); }