Java 面向对象

面向对象是什么?

问题1:如何将大象装到冰箱里?->打开 冰箱,放大象,关冰箱。
面向过程:强调的是行为和功能把大象放到冰箱里(打开 存储 关闭)强调动作
面向对象: 冰箱的行为(开关存储)看到的是冰箱 强调对象

问题2:为什么要使用对象?
把复杂的东西简单化~我们不需要再自己手动去操作这件事,而是通过对象来帮我们完成,我们是指挥者。

面向对象的特征
  1. 封装
  2. 继承
  3. 多态
类和对象中的关系

类:就是对现实生活中事物的描述(而描述事物,就是定义属性和行为,属性和行为共同成为类中的成员(成员变量和成员方法)) 就是class定义的类
对象:就是这类事物,实实在在存在的个体 实体在堆内存中用new建立的实体

现实生活中的对象,想要描述就是提取对象中共性内容,对具体的抽象描述时,对这些对象的共性:年龄、姓名、国家
Person是类,p则是对象。

class Person{
	private String name;
	private int age;
	private static String country = "cn";
}	
public class PersonDemo {

	public static void main(String[] args) {
		Person p = new Person();

	}
}
成员变量和局部变量
  1. 作用范围:
    成员变量作用于整个类中,局部变量作用于函数中或者语句中
  2. 在内存中位置:
    成员变量,在堆内存中,因为对象的存在,才在内存中存在
    局部变量,存在在栈内存中
匿名对象(没名字的对象)

匿名对象调用类的属性没有意义,但是调用类中的方法是有意义的。通常使用场景是:

  1. 当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化
  2. 可以将匿名对象作为实际参数进行传递

在这里插入图片描述
需求:汽车修配厂,对汽车进行改装,将送来的车修改成黑车,三个轮胎
主函数里的q赋值给show的c变量,栈内存里只有一个对象。
在这里插入图片描述

匿名对象可以作为参数作为实际参数进行传递,当show调用结束则在堆内存中变成垃圾,等待回收。
在这里插入图片描述
两种方法在内存中的区别:
第一种,为图中下方位置,他通过赋值让q也有了指向栈内存的对象,
第二种,直接是匿名对象,通过调用show时,将new Car()传给show的c,也就对象内存地址值赋值给C
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值