Java(8)—— 类与对象、成员方法

目录

类与对象(OOP)

属性/成员变量

如何创建对象/访问属性

类和对象的内存分配机制

成员方法

1.简单介绍

2.方法的调用机制

3.成员方法的定义

4.方法使用细则

5.方法调用细则

成员方法的传参机制

基本数据类型的传参机制

引用数据类型的传参机制

方法递归调用


类与对象(OOP)

概念:

  1. 类是抽象的、概念的,代表一类事物,例如:猫类、犬类、人类。
  2. 对象是具体的、实际的,代表一个具体的事物、一个实例,例如:老王(人类)。
  3. 类是对象的模板,对象是类的一个个体,对应一个实例。

对象内存布局(对象的存在形式):

 说明(写的乱):

  1. 首先把类信息加载到方法区,再分配空间
  2. name、color是字符串,引用类型 会存到常量池内并由堆内指向(引用类型的存放方式)
  3. 对象和数组都是引用类型(存在栈内),所以会指向一个地址
  4. 堆内有三个空间代表三个属性
  5. int是基本数据类型直接存在堆内

属性/成员变量

介绍:

  1. 从概念或叫法上看:成员变量 = 属性 = field(字段)(即 成员变量是用来表示属性的)。
  2. 属性是类的一个组成部分,可以是基本数据类型和引用类型(对象,数组)。

属性注意事项:

  1. 属性的定义语法同变量,示例:访问修饰符 属性类型 属性名,有四种访问修饰符(public、proctected、默认、private
  2. 属性的定义类型可以为任意类型,包含基本数据类型和引用数据类型
  3. 属性如果不赋值,有默认值,规则和数组一致。具体说: int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000, boolean false,String nul
class Person {
    //四个属性
    int age;
    String name;
    double sal;
    boolean isPass;
}
 class PropertiesDetail {
    //编写一个 main 方法
    public static void main(String[] args) {
    //创建 Person 对象
    //p1 是对象名(对象引用)
        // new Person() 创建的对象空间(数据) 才是真正的对象
        Person p1 = new Person();
        System.out.println("\n 当前这个人的信息");
        System.out.println("age=" + p1.age + " name=" + p1.name + 
                " sal=" + p1.sal + " isPass=" + p1.isPass);
        //输出:age=0 name=null sal=0.0 isPass=false
    }
}

如何创建对象/访问属性

创建对象:

  1. 先声明再创建:Cat cat1; cat1 = new Cat();
  2. 直接创建:Cat cat1 = new Cat();

访问属性基本语法:对象名.属性名;  ( cat.name ; cat.age; cat.color)

类和对象的内存分配机制

 

相对于有两个名字,两个引用。就像一个人的乳名和大名。

再看一遍视频!p199

Java内存的结构分析:

  1. 栈: 一般存放基本数据类型(局部变量)。
  2. 堆: 存放对象(Cat cat , 数组等)。
  3. 方法区:常量池(常量,比如字符串), 类加载信息。
  4. 示意图 [Cat (name, age, price)。

 Java 创建对象的流程简单分析:

  1. 先加载 Person 类信息(属性和方法信息, 同一个类只会加载一次,再创建此类的对象时不会再加载属性和方法)。
  2. 在堆中分配空间, 进行默认初始化(看规则)。
  3. 把地址赋给 p , p 就指向对象。
  4. 进行指定初始化, 比如 p.name =”jack” p.age = 10

内存练习:

 说明:

  1. b=a,相当于b也指向上一个创建的对象
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值