day20 封装 类和对象的创建 面向对象的本质 构造器是什么 构造器的注意点和特殊情况 this关键字

本文详细介绍了类和对象的创建过程,重点讲解了封装、继承和多态的概念,以及如何通过实例化创建对象。涵盖了构造器的必要性、书写规则和实例化可能遇到的情况。通过实例代码演示了类模板和对象实例的运用以及构造器的作用。
摘要由CSDN通过智能技术生成

类和对象的创建、

类的特性:

  1. 封装

  2. 继承

  3. 多态

类是对象的抽象化,对象是类的实例化

通俗就是类是一个模板,可以匹配大多数对象的一个模板。

类实例化会返回一个自己的对象

对象 就是类的具体实例

封装:

一个项目应该只存在一个main方法

其余的都是类

一般启动程序用Application(意思:应用程序)独自一个文档,并且创建程序唯一的main方法启动。其他的只是应用的类。也是类的封装

类方法文件:
package com.ckw.oop.demo02;

public class Student {
    //属性:字段
    String name = "未知"; //赋值(非必须)
    int age = 20;//赋值(非必须)
    //方法
    public void say(){ //定义一个类的方法
        System.out.println("我叫"+this.name+",今年"+this.age+"岁");
    }
}

类实例化启动:
package com.ckw.oop.demo02;

public class Application {
    //
    public static void main(String[] args) {
        Student xiaoming =new Student();//实例化一个类
        xiaoming.name = "小明";//形参数赋值
        xiaoming.age =12;//形参数赋值
        xiaoming.say();//引用类的方法
        Student honghong =new Student();
        honghong.say();//不同实例化之间,值是不会互相传递的,类似只是套用模板而已

    }
}

面向对象的本质:
  • 以类的方式组织代码,以对象的方式组织(封装)数据。

  • 封装 相当于套用了类的模板。从而别人看不到我们的具体代码,俗称封装。

  • 类是对象的模板


使用new关键字创建对象

使用new关键字的创建的时候,除了分配内存空间外,还会给对象进行默认的初始化,以及对类中构造器的调用。

构造器

类中的构造器 也叫 构造方法。是在进行创建对象的时候必须要要调用的。:就是类中在编译器默认生成的构造方法。

构造器注意点:
  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void。

即使创建类后,里面什么都不写。编译后,编译器也会默认初始化生成一个构造器(构造方法)。

代码展示区别

原代码.java(什么都不写):

package com.ckw.oop.demo02;

public class Application {
}

编译器.class文件(默认生成了一个无参数构造器):

package com.ckw.oop.demo02;

public class Application {
    public Application() {
    }
}
构造器的作用:
  1. 实例化初始值。给为赋值的对象赋初始值。
  2. 使用new关键字的时候,本质是在调用构造器(最重要)
两个注意点:
  1. 如果构造器不在。方法就会报错(一般默认生成)
  2. 如果存在有参数构造器,要调用无参数构造器时,就必须写出之前编译时会默认生成的构造器。或者必须实例化类的时候加上参数直接调用有参数构造器。

特殊情况

以下:存在两个构造器,并且是有参数构造器!(这种情况,要调用无参数构造器时,必须在文档写出那个无参数那个构造器,给new调用,或者,实例化的时候必须带参数,不然找不到构造器会报错。)

快捷键:ALT+insert(快速生成构造器)

在这里插入图片描述

package com.ckw.oop.demo02;

public class Application {
    String name;
    //1. 实例化初始值。给为赋值的对象赋初始值。
	//2. 使用new关键字的时候,本质是在调用构造器。
    public Application(){
        this.name = "构造器的作用就是设置初始值";
    }
	/*如果存在有参数构造器,就必须写出之前编译时会默认生成的构造器。或者必须实例化类的时候加上参数。*/
    public Application(String name) {
        this.name = name;
    }
}
构造器实例化的可能发生的情况:
  1. 如果构造器不存在,就报错。

  2. 如果只有有参数构造器,就实例化的时候必须带参数。

  3. 如果有多个构造器,会根据构造器的参数列表,自动选择类中不同的构造器运行。

构造器总结:

书写注意:
  1. 必须跟类名一致
  2. 没有返回值
作用:
  1. new 本质是在调用构造器
  2. 初始化对象的值
注意点:

如果定义了有参数构造器,还想要调用无参构造器,必须 定义一个无参的构造器。

this. 关键字

this主要是给方法调用类定义的属性使用的

this.oop=“hello”

package com.ckw.oop.demo02;

public class Student {
    //属性:字段
    String name = "未知"; //赋值(非必须)
    int age = 20;//赋值(非必须)
    //方法
    public void say(){
        System.out.println("我叫"+this.name+",今年"+this.age+"岁");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值