JAVA基础7-构造器

2022年05月11日 阅读数:2
这篇文章主要向大家介绍JAVA基础7-构造器,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

封装与隐藏

高内聚低耦合

  1. 高内聚:类的内部操做细节本身完成,不容许外部干扰
  2. 低耦合:仅对外暴露少许方法用于使用

封装体现

  1. 在类中,咱们经过对象.属性对属性进行操做,但在现实状况中须要对操做进行限制
  2. 经过对用户设置进行判断或设置私有变量
  3. 咱们将类的属性私有化,经过set方法进行设置,经过get方法获取
  4. 示例:
public class Test1 {
   
   
    public static void main(String[] args) {
   
   
       Person p1=new Person();
       p1.name="jack";
       p1.setAge(20);
       p1.show();
         System.out.println(p1.getAge());//20
       Person p2=new Person();
       p2.name="rose";
       p2.setAge(-20);
       p2.show();
       //name=roseage=0china
    }


}
class Person{
   
   
    String name;
    int age;
    private String nationality="china";//添加私有权限,外部没法更改
    //对设置年龄进行设置必须大于零,否则默认为0
    public void setAge(int num){
   
   
        if(num >= 0){
   
   
            age=num;
        }else {
   
   
            age=0;
        }
    }
    //获取属性
    public int getAge(){
   
   
        return age;
    }
    public void show(){
   
   
        System.out.println("name=" + name +" "+"age"+ age + " " +nationality);
    }

}java

  1. 不对外暴露私有方法
  2. 单例模式

构造器(constructor)

构造做用

  1. 建立对象 new+构造器
  2. 初始化对象信息
  3. 若是没有显示定义类的构造器的话,则系统默认提供一个空参的构造器
  4. 默认构造器权限与类权限一致
  5. 一个类中若是有多个构造器,那么构造器之间为重载
  6. 定义构造器的格式:权限修饰符 类(形参列表){}
public class Test2 {
   
   
    public static void main(String[] args) {
   
   
        Person2 p=new Person2();
        //constructor
    }
}
class Person2{
   
   
    String name;
    public Person2(){
   
   
        System.out.println("constructor");
    }
}

JavaBean

  1. JavaBean是一种JAVA语言写成的可重用组件
  2. 特色:
    • 类是公共的
    • 有一个无参的公共构造器
    • 有属性,且有get,set方法
  3. 用户可使用JavaBean将功能,处理,值,数据库访问和其余任何能够用JAVA代码建立的对象进行打包,其余开发者能够经过JSP页面,JavaBean,apple程序来访问,也就是说JavaBean提供了复制和黏贴功能

this关键字

  1. 在方法内部使用,即这个方法所属对象引用
  2. 在构造器内部使用,表示构造器正在初始化对象
  3. this在表示当前对象时,能够调用类的属性,方法,构造器
  4. 也就是在方法内部须要调用该方法的对象时,用this
  5. 一般this能够省略,但若是出现类和方法形参重名就须要加上
  6. 示例:
public class Test2 {
   
   
    public static void main(String[] args) {
   
   

        Person3 p2=new Person3();
        p2.setName("jack");
        System.out.println(p2.getName());
        //jack
        p2.eat();
        //作饭 吃饭
    }
}
class Person3{
   
   
    String name;
    public void setName(String name){
   
   
        this.name=name;//这样能够解决name=name指代不明状况
    }
    public String getName(){
   
   
        return this.name;
    }
    public void eat(){
   
   
        this.cook();//这里在方法里面调用类的方法
        System.out.println("吃饭");
    }
    public void cook(){
   
   
        System.out.println("作饭");
    }
}
  1. this调用构造器
    • 在类的构造器中,能够显示使用this(形参列表),调用本类指定的其余构造器
    • 调用应注意在一条调用链上同一个构造器只能出现一次
    • 构造器调用时只能出如今首行,而且只能声明一个调用其余构造器
    • 示例:
public class Test2 {
   
   
    public static void main(String[] args) {
   
   
		  //初始化同时向构造器中传参
          Person4 p4=new Person4("jack",22);
          p4.show();
          //name=jackage22
    }
}
class Person4{
   
   
    private String name;
    private int age;
    public Person4(String name){
   
   
        this.name=name;//赋值name
    }
    public Person4(String name,int age){
   
   
        this(name);//经过this关键字调用构造器
        this.age=age;//赋值age
    }
    public void show(){
   
   
        System.out.println("name=" + this.name + "age" + this.age);
    }
}

package(包)

  1. 为了更好的实现项目中类的管理,提供包的概念
  2. 使用package声明类或接口所属的包,声明在源文件首行
  3. 包属于标识符,遵循标识符命名规则
  4. 在包中每.一次表示一层文件目录

import(导入)

  1. 在源文件中显式使用import导入指定包下的接口和类
  2. 声明在包和类之间可使用xxx.*表示导入包下全部结构
  3. java.long包下定义的或本包定义的能够省略import结构
  4. 若是使用同名类,就在new时用全类名方式
  5. import static能够导入指定类或接口中的静态结构