/ * 面向对象三个特征:封装,继承,多态
* 开发就是找对象使用,没有对象,就创建一个对象
* 找对象,建立对象,使用对象,维护对象的关系
* 类:对现实生活事物的描述
* 对象:事物,实实在在存在的个体
* 抽取对象中共性的部分(如名字,年龄,性别等),映射到java中,描述就是class定义的类
* 具体对象就是对应java在堆内用new建立实体
* 属性对应类中的变量,行为对应类中的函数(方法)
* 定义类就是在描述事物,就是在定义属性和行为,属性和行为共同成为类中的成员(成员变量和函数)
* 成员变量作用于整个类中,局部变量作用于函数中或语句中
* 成员变量存在堆内存中,因对象存在而存在;局部变量存在栈内存中
*/
public class Car {
//汽车颜色
String color = "红色";
//汽车轮胎数
int num = 4;
//运行行为
void run(){
System.out.println("轮子数目:"+num);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//生产汽车,就是在java中通过new操作符来完成
//其实就是在堆内存产生一个实体
Car c = new Car();//c就是一个类类型变量,注:类类型变量指向对象
//需求:改变汽车颜色,在java指挥方式是:对象.对象成员
System.out.println("模型原来的颜色:"+c.color);
c.color = "blue";
System.out.println("新车1个性化改造后的颜色:"+c.color);
c.run();
Car c1 = c;
System.out.println("新车1给新车2传递的颜色:"+c1.color);
c1.color = "green";
System.out.println("新车2的颜色:"+c1.color);
System.out.println("新车1的颜色"+c.color);
//c的颜色是c1的颜色,说明两人共用一个地址,c是把自己的地址赋给了c1
//生成一个匿名对象
new Car().num = 5;
new Car().color = "yellow";
new Car().run();
//匿名对象使用方式一:当对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化
//如果对一个对象进行多个成员调用,必须给这个对象起个名字
//匿名对象使用方式二:可以将匿名对象作为实际参数进行传递
Car q = new Car();
show(q);
//两句合并
show(new Car());
}
//对车进行改装
public static void show(Car c){
c.num = 3;
c.color = "red";
c.run();
}
}