239(重要)讲构造器/构造方法、(重要)对象创建的流程分析!!this关键字
内容纲要

239(重要)讲构造器/构造方法、(重要)对象创建的流程分析!!this关键字

file

  • 构造器

file

  • 构造器的快速入门

file

public class Constructor01{
    public static void main(String[] args){

    }
}
class Person{
    String name;
    int age;
    //构造器
    //老韩解读:
    //1.构造器没有返回值,也不能写void
    //2.构造器的名称和类Person一样
    //3.(String pName,int pAge) 是构造器形参列表,规则和成员方法一样
    public Person(String pName,int pAge){
        name = pName;
        age = pAge;
    }
}

file

  • 构造器的细节

file

file

  • 构造器细节

file

课堂练习

file

public class ConstructorExercise{
        public static void main(String[] args){
            Person p1 = new Person(18,"小白");
            System.out.println(p1.age + p1.name);
            Person p2 = new Person();
        }
    }
    class Person{
        int age;
        String name;
        public Person(int pAge,String pName){
            age = pAge;
            name = pName;
        }
        public Person(){
            age = 18;
        }

    }

(重要)对象创建的流程分析

file

  1. 加载Person类信息(Person.class),只加载一次

  2. 在堆中分配空间(地址)

  3. 完成对象初始化 [3.1 默认初始化 age = 0; name = null; ]

    [ 3.2 显式初始化 age =90, name = null]

    [ 3.3 构造器的初始化 age = 20, name = 小倩]

  4. 在对象在堆中的地址,返回给 p(p 是对象名,也叫对象的引用)

this关键字

file

file

file

注意上面代码:

1.在构造方法中的 name 根据作用域原则,指的是构造器中的 name。

2.也就是构造器中的 name 传入的 "大壮",age 传入的 3,赋给了构造器中的name;

3.然后 info( ) 方法中打印输出的 name 和 age 是属性的 name 和 age。 name = null;

age = 0;

file

file

  • 重要的图

file

this. 堆中的属性在 java 虚拟机中指向的是自己的对象的地址,

file

file

file

注意:这3 个的 hashCode 是一样的,因为在 info( ) 方法中的 this.hashCode 是指向的是对象的地址, 也就是 newDog("大壮" , 3); 的地址它的 hashCode。构造方法中的this.hashCode 也是指向对象 newDog("大壮" , 3); 的地址。故他们3 的 hashCode 完全一致。

this关键字 注意事项 使用细节

file

  • 3.访问成员方法的语法: this.方法名(参数列表);

file

  • 4.访问构造器语法:this(参数列表); 注意只能在构造器中食用;必须放在首行
public T(){
    this("jack",100);//固定写法,只能在构造器中使用。
    //构造器中想要使用this 访问另外的构造器必须把 this(参数列表) 放置在第一条语句
}//看到下面的报错没有!!!!

file

file

file

  • 课堂练习

file

file

file

  • 回味一下上面那个代码 p1.compareTo(p2) 有点难懂哦
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇