Java(五)——Java构造器

构造器的引入

创建好一个类后,系统默认内置一个隐式的构造器。构造器和方法是两码事,各是各的。

Java(五)——Java构造器_第1张图片

Java(五)——Java构造器_第2张图片

构造器的作用

1. 创建对象。

2. 在创建对象的过程中,对这个类进行初始化操作,这些操作写在构造器的大括号中

        2.1 初始化操作放到构造器中,由构造器自动完成,程序员就不必在创建对象后还想着对这对象做初始化操作。

构造器的组成

Java(五)——Java构造器_第3张图片

代码示例:构造器

有一个参数的构造器

public class Soldier {
    private String soldierName;
    public Soldier(String soldierName) {
        this.soldierName = soldierName;
    }
}

注意:当类中声明有参构造器后,系统将不再给这个类分配无参构造器。

一个类有多个构造器时:要么参数个数不同;要么参数类型不同

public class Soldier {
​
    private int age;
    private String soldierName;
    private String weapon;
    private String gender;
​
    public Soldier() {
        
    }
    
    public Soldier(int age) {
        this.age = age;
    }
​
    public Soldier(String soldierName) {
        this.soldierName = soldierName;
    }
    
    public Soldier(String soldierName, String weapon) {
        this.soldierName = soldierName;
        this.weapon = weapon;
    }
    
    public Soldier(String soldierName, String weapon, String gender) {
        this.soldierName = soldierName;
        this.weapon = weapon;
        this.gender = gender;
    }
    
    public Soldier(int age, String soldierName, String weapon, String gender) {
        this.gender = gender;
        this.weapon = weapon;
        this.soldierName = soldierName;
        this.age = age;
    }
}

构造器相关语法规则

  1. Java语言中,每个类都至少有一个构造器
  2. 默认构造器的修饰符与所属类的修饰符一致
  3. 一旦显式定义了构造器,则系统不再提供默认构造器
  4. 一个类可以创建多个重载的构造器
  5. 父类的构造器不可被子类继承

快捷键:

ctrl + p:提示参数

alt + insert : 构造器生成快捷键

类的属性赋值的顺序

1. 系统根据这个属性的类型来设置默认值。

private int age;

2. 显示初始化

private int age = 6;

3. 构造器初始化

public Person(int age) {
    this.age = age;
}

4. 调用方法或直接给属性赋值

person.setAge(5);
person.age = 18;

JavaBean类(扩展知识)

JavaBean是一种Java语言写成的可重用组件。

所谓JavaBean是指符合如下标准的Java类:

  1.         类是公共的
  2.         有一个无参的公共的构造器
  3.         有属性,且有对应的  get  、set  方法

用户可以使用JavaBean将功能、处理、值、数据库访问和其它任何可以用Java代码创造的的对象进行打包,并且其他的开发者可以同通过内部的JSP页面、Servlet、其它JavaBean、applet程序或者应用来使用这些对象。用户可以为JavaBean提供一种随时随地的复制和粘贴功能而不用关心任何改变。

  • JavaBean

    • 用来描述现实世界中的具体数据:Book、Employee、Department、Product、……
    • 也有其他名称:domain(领域模型)、POJO(Plain old Java Object普通的传统的Java对象)、entity(实体类)
  • 功能性组件:用来执行具体代码逻辑对应的操作

    • BookServlet
    • BookService
    • BookDao
  • 工具类:通常用来把某个特定操作封装到工具方法中。工具类通常是用类名来直接调用方法。

    • Aarrys.sort()

JavaBean的要求

     必须有的组成部分:

  • 私有的属性
  • 针对私有属性设置的公共的getter()、setter()方法
  • 无参构造器

getter()和setter()方法的规则

private int age;

getter()、setter()方法:

    public int getAge() {
        return age;
    }
​
    public void setAge(int age) {
        this.age = age;
    }

规则描述如下:

  • getXxx()或setXxx()方法取方法名字符串
  • 去掉get或set(剩下Xxx)
  • Xxx首字母小写

UML类图

Java(五)——Java构造器_第4张图片

IDEA中生成UML     右键

Java(五)——Java构造器_第5张图片

this关键字

含义: 

  1. 类的方法中:代表调用当前方法的对象

Java(五)——Java构造器_第6张图片

         2. 类的构造器中:代表当前构造器正在创建对象

Java(五)——Java构造器_第7张图片

 this能干什么

1.调用属性

2.调用方法

3.this调用本类的构造器

4.this调用构造器的规则

  • 在构造器中调用其他构造器,this()语句必须在第一行
  • 各个构造器之间调用不能形成闭环
  • 一个构造器中调用其他构造器的操作只能有一个

package关键字

用来声明当前类所在的包。package声明所在包的语句必须是在类的第一行。若缺省该语句,则指定为无名包。

import关键字

在JDK编译Java源程序的时候,并不能保证所有的类都能够被JDK默认识别到。JDK无法默认识别的类就需要我们通过import语句导入。

  • 精确导入:在import关键字后面指定全类名
import java.util.Scanner;
  • 全部导入:在import关键字后面指定包名.*
import java.util.*;

语法规则:

  • 使用的位置:在package声明和类声明之间
  • 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
  • 如果导入一个类之后,又需要用到另一个同名的类,那么就需要使用全类名来引用
  • 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
  • import static组合的使用:静态导入。让当前类可以直接调用导入的类中的静态属性或方法,不必写类名了。

你可能感兴趣的:(Java,java)