多类合作总结
-
类和对象的操作模式
类是数据类型定义
对象是目前操作成员方法,操作成员变量的核心 -
这两组代码在main方法中基本上全部是一个面向对象思想
a. 自定义数据类型,自定义类对象,作为方法参数。
b. 通过类对象来操作代码方式,所有的内容都是和对象相关 -
代码需要阅读,一定要阅读!!!
不要断章取义!!!
. 就是的 -
代码中要什么你给什么
匿名对象概述
Person person = new Person(“骚杰”, 66, ‘男’);
Person 类名
person 对象名
new Person(…) 像内存的堆区申请空间,创建一个Person类对象使用的内存空间
匿名对象
没有名字的对象,没有对象名的对象
格式:
new 构造方法(所需参数)
用途
1. 提高开发效率,隐形眼镜日抛,一次性筷子
匿名对象当前行使用之后,如果没有其他引用数据类型的变量保存其地址,直接销毁
2. 简化代码结构
3. 通过匿名对象直接调用成员方法
4. 使用匿名对象作为方法的参数
以多类合作,匿名对象写一段完全面向对象的程序
写一个汽车类对象,要与轮胎类对象和发动机类对象合作完成
package com.day04.thethird;
// 引擎类,包含型号属性,排量属性
public class Engine {
// 以宝马发动机为例,例如N62:N代表的级别,6代表8缸,2发动机在同等车型先进程度
private String engine;
private int CC;
// 构造无参方法
public Engine() {}
// 构造有参方法
public Engine(String engine, int cC) {
super();
this.engine = engine;
CC = cC;
}
// 获取 或者更改参数
public String getEngine() {
return engine;
}
public void setEngine(String engine) {
this.engine = engine;
}
public int getCC() {
return CC;
}
public void setCC(int cC) {
CC = cC;
}
}
- 写一个轮胎类
package com.day04.thethird;
public class Tyre {
// 创建一个轮胎类,包含轮胎属性:型号,尺寸 ,型号为:225/45 R17,尺寸为:18英寸
private String modelNumber;
private int size;
// 构造一个无参方法
public Tyre () {}
// 构造有参方法
public Tyre(String modelNumber, int size) {
super();
this.modelNumber = modelNumber;
this.size = size;
}
public String getModelNumber() {
return modelNumber;
}
public void setModelNumber(String modelNumber) {
this.modelNumber = modelNumber;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
然后写一个车类合作完成车类对象
package com.day04.thethird;
public class Vehicle {
// 汽车类 以发动机,轮胎为参数
private Engine engine;
private Tyre tyre;
// 养成好习惯先构造一个无参方法
public Vehicle() {}
// 这里构造一个有参方法
public Vehicle(Engine engine, Tyre tyre) {
super();
this.engine = engine;
this.tyre = tyre;
}
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
public Tyre getTyre() {
return tyre;
}
public void setTyre(Tyre tyre) {
this.tyre = tyre;
}
// 这里是一个输出发动机属性和轮胎属性的方法
public void sout() {
System.out.println("这是" + engine.getEngine() + "的发动机" + engine.getCC() + "的排量");
System.out.println("轮胎的型号是" + tyre.getModelNumber() + tyre.getSize() + "的尺寸");
}
}
最后通过主方法演示这一段【完全面向对象】的程序
package com.day04.thethird;
public class Demo1 {
public static void main(String[] args) {
/*
* 【匿名对象】
* 在多类合作中,可能需要创建很多的对象,如果都是传统的方式创建,代码非常冗余!
* 这时候如果选择匿名对象将会大量减少冗余,使代码阅读性更高
*/
/*
* 这是一段完全【面向对象】的程序
* 通过调用类对象的功能和属性来完成这一段代码
*/
/*
* 这是一个由汽车发动机,汽车轮胎类对象组成的车对象
*/
// Engine engine = new Engine("N62", 3000);
// Tyre tyre = new Tyre("225/45 R17", 18);
Vehicle vehicle = new Vehicle(new Engine("N62", 3000), new Tyre("225/45 R17", 18));
vehicle.sout();
// 更换车类中发动机engine 更换后是一个N78 2000排量的发动机
vehicle.setEngine(new Engine("N78", 2000));
vehicle.sout();
}
}
在这3段代码中,gat的意思是读取的意思,获取当前成员方法的内容,set是设置的意思,修改当前方法的内容,
明天继续面向对象!!!