面向对象编程02:对象的创建与初始化、构造器(构造方法/构造函数)、创建对象内存分析、类与对象复习提纲

对象的创建与初始化

  1. 使用new关键字创建对象

下面看一个使用new关键字创建对象的实例:

this指向本类

//学生类
public class Student {

    //属性:字段
    String name;
    int age;
    
    //方法
    public void study( ) {
        System.out.println(this.name +"在学习" );//this指向本类中
    }
}

//一个项目只能存在一个main方法
public class Application {
    public static void main(String[] args) {
        //类:抽象的
        Student xp = new Student();
        Student xh = new Student();
        xp.name = "XiaoPeng";
        System.out.println(xp.name);

        xp.age = 20;
        System.out.println(xp.age);
    }
}

输出结果:
XiaoPeng
20
  1. 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化 以及 对类中构造器的调用。

构造器(构造方法/构造函数)

类中构造器也称构造方法、构造函数,是创建对象时必须要调用的。并且构造器有以下特点:

  1. 必须和类同名
  2. 必须没有返回类型,也不能写void
  3. 创建构造器的语法格式:
  4. new初始化时先初始化构造器再new对象
//无参构造:
修饰符(如public)类名(){
//不能有return
}

//有参构造:
修饰符(如public)类名(形参列表){
//不能有return
}
  1. IDEA中使用Alt+Enter可以快捷创建构造器

  2. 如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法;

    但是如果编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而不会默认添加无参构造方法!

    所以,如果编写时添加了有参构造方法且仍需要使用无参构造方法时,一定要在类里面显式添加。

下面看Person类的构造器创建及测试实例:

//.java----->.class
public class Person {
    //一个类即使什么都不写,也会存在一个方法
    //显式的定义构造器
    String name;
    int age;

    //Alt + Insert 快捷创建构造器
    //1.使用new关键字,必须要有构造器。new实例化的本质是在调用构造器
    //2.用来初始化值

    //无参构造
    public Person() {
        this.name = "AI";

    }
    //有参构造:一旦定义了有参构造,无参构造就必须显式定义

    public Person(String name) {
        this.name = name;

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

        //实例化而一个对象
        Person person = new Person();
        Person person1 = new Person("Bi");
        System.out.println(person.name);
        System.out.println(person1.name);

    }
}

输出结果:
AI
Bi

创建对象内存分析

public class Pet {
    public String name;
    public int age;

    //无参构造

    public void shout(){
        System.out.println("叫了一声");
    }

}

/**
 public class Application {
 public static void main(String[] args) {
 Pet dog =new Pet();
 dog.name = "旺财";
 dog.age = 2;
 dog.shout();
 
 System.out.println(dog.age);
 System.out.println(dog.name);
 
  }
 }
 * 
 */

以上代码的内存占用图如下:

创建对象内存图

类与对象复习提纲

  1. 类与对象:类是一个模板,对象是一个实例。

  2. 方法:定义、调用

  3. 对象的引用:

    引用类型、基本类型(8)

    对象是通过引用来操作的:栈---->堆

  4. 属性:字段Field 成员变量

    默认初始化:

    数字: 0 0.0

    char : u0000

    boolean: false

    引用:null

    语法格式:修饰符 属性类型 属性名 = 属性值!

  5. 对象的创建和引用

    • 必须使用new关键字创建对象 Person xiaoming = new Person();
    • 构造器
    • 对象的属性:xiaoming.name、xiaoming.age
    • 对象的方法:xiaoming.sleep();
  6. 类:

    静态的属性: 属性

    动态的行为: 方法

  7. 继承、封装、多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clap of thunder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值