面向对象(对象、成员变量、内存存储)

面向对象三大基本特征:

  • 封装(Encapsulation):可以理解为打包,将类内部的属性和具体实现方式隐藏,只对外提供公共访问方式。

  • 继承(Inheritance): 继承可以使得子类具有父类的非私有属性,调用父类的非私有方法。并且子类可以重新定义、追加属性和方法,提高了代码的重用率。

  • 多态(Polymorphism): 父类引用指向子类对象,提高代码的灵活性。

1.定义类

基本语法:

public class ClassName{

        //成员变量

        //成员方法

}

2.成员变量

基本语法:

【修饰符】 Class  类名{

        【修饰符】 数据类型  属性名;    //属性有默认值
        【修饰符】 数据类型  属性名 = 值; //属性有初始值

}

2.1成员变量(实例变量)和局部变量的区别:

1. 定义的位置不同:
        局部变量定义在方法里
        成员变量定义在类里方法外
2. 作用域不同: 变量能够被访问到的区域
        局部变量只能在当前定义它的方法里访问
        成员变量可以在本类访问
        作用域: 全局作用域,局部作用域(方法作用域,块级作用域)
3. 存储的位置也不同(重点)
        局部变量存储在栈区
        成员变量存储在堆区(重点)
4. 默认值不同
        局部变量如果不赋值,没有默认值,不能使用
        成员变量如果不赋值会有默认值
            byte/short/int/long --> 0  float/double-->0.0  char-->\u0000
            boolean --> false   引用数据类型 --> null
5. 生命周期不同
        局部变量方法调用时创建局部变量,方法执行完成以后,局部变量销毁
        成员变量对象创建时创建成员变量,对象销毁时,成员变量销毁

3.对象的内存存储

public class OOPDemo2 {
    public static void main(String[] args) {
        Dog d = new Dog();
        System.out.println(d.name);   //null
        System.out.println(d.age);    //0
    }
}
class Dog{
    String name;
    int age;
}

  •  一个对象调用一个方法内存图

  • 两个对象调用同一个方法内存图

  • 将一个对象当做参数传入时的内存图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值