zoukankan      html  css  js  c++  java
  • 03_2_JAVA中的面向对象与内存解析

    03_2_JAVA中的面向对象与内存解析

    1. 成员变量

    成员变量可以是Java语言中任何一种数据类型(包括基本数据类型和引用数据类型)

    在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的初始值。

    如下列表:

    成员变量类型

    取值

    byte

    0

    short

    0

    int

    0

    long

    0L

    char

    ‘u0000’

    float

    0.0F

    double

    0.0D

    boolean

    false

    所有引用类型

    null

    成员变量的作用范围为整个类体。

    2. 引用

    Java语言中除基本类型之外的变量类型都称之为引用类型。

    Java中的对象是通过引用个对其操作的。

    3. 如何在内存中区分类和对象

    类是静态的概念,代码区

    对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存。

    4. 对象的创建和使用

    必须使用new关键字创建对象。

    使用对象(引用).成员变量或来引用对象的成员变量。

    使用对象(引用).方法(参数列表)来调用对象的方法。

    同一类的每个对象有不同的成员变量存储空间。

    同一类的每个对象共享该类的方法。

    5. 构造方法(构造函数)

    使用new + 构造方法创建一个新的对象。

    构造函数是定义在Java类中的一个用来初始化对象的函数。

    构造函数与类同名且没有返回值。

    例如:

    public class Person {

    int id;

    int age;

    Person(int n, int i) {

    id = n;

    age = i;

    }

    }

    当没有指定构造函数时,编译器为类自动添加形如

    类名() {} 的构造函数。

    6. 约定俗成的命名规则

    类名的首字母大写

    变量名和方法名的首字母小写

    运用驼峰标识

    7. 调用过程演示

    Test test = new Test();

    int date = 9;

    BirthDate d1 = new BirthDate(7,7,1970);

    BirthDate d2 = new BirthDate(1,1,2000);

    test.change1(date);

    test.change2(d1);

    test.change3(d2);

    ......

    public void change1(int i) {

    i = 1234;

    }

    public void change2(BirthDate b) {

    b = new BirthDate(22, 2, 2004);

    }

    public void change3(BirthDate b) {

    b.setDay(22);

    }

     

    1

     

    2 date9传给形参i i = 9

     

    3 i 被设置为 1234

     

    4 方法change1调用完毕之后,i值消失

     

    5 调用change2 d1的值 传给 b

     

    6 b d1 指向同一对象

     

    7 b 并赋予新值 重新指向另一对象

     

    8 方法change2调用完毕之后, b消失,以及对象也消失 (堆里面的对象,有可能不是马上消失,而是在垃圾回收的时候,消失。)

     

    9 调用change3 b被传递为d2的值,而和d2指向同一对象

     

    10 day被改成22

     

    11 change3调用完毕 b消失

  • 相关阅读:
    iOS 性能调优
    Google Nexus 5x Android 7.0 Root
    Android库的标准化(不断更新中)
    Firefox实用插件记录
    关于WordPress搬家方法步骤的整理
    eclipse搭建servlet项目
    Eclipse的FindBugs插件
    常用 Java 静态代码分析工具的分析与比较
    JSONObject简介
    New XAMPP security concept:错误解决方法
  • 原文地址:https://www.cnblogs.com/flyback/p/8640622.html
Copyright © 2011-2022 走看看