zoukankan      html  css  js  c++  java
  • 创建与初始化对象

    使用new关键字创建对象

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

    构造器

    类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:

      1. 必须和类的名字相同

      2. 必须没有返回类型,也不能写void

    构造器的作用:

      1. 使用new创建对象的时候必须使用类的构造器

       2. 构造器中的代码执行后,可以给对象中的属性初始化赋值

    【演示】

    1 public class Student{
    2     private String name;
    3     public Student(){
    4         name = "tom";
    5     }
    6 }

    构造器重载:除了无参构造器之外,很多时候我们还会使用有参构造器,在创建对象时候可以给属性赋值.

    【例子】

    1 public class Student{
    2     private String name;
    3     public Student(){
    4         name = "tom";
    5     }
    6     public Student(String name){
    7         this.name = name;
    8     }
    9 }

    构造器之间的调用

    使用this关键字,在一个构造器中可以调用另一个构造器的代码。

    注意:this的这种用法不会产生新的对象,只是调用了构造器中的代码而已.一般情况下只有使用new关键 字才会创建新对象。

    【演示】

    public class Student{
        private String name;
        public Student(){
            this();
        }
        public Student(String name){
            this.name = name;
        }
    }

    默认构造器:在java中,即使我们在编写类的时候没有写构造器,那么在编译之后也会自动的添加一个无参构造器,这个 无参构造器也被称为默认的构造器。

    【示例】

    public class Student{
    }
    
    main:
    //编译通过,因为有无参构造器
    Student s = new Student();

    但是,如果我们手动的编写了一个构造器,那么编译后就不会添加任何构造器了

    【示例】

    public class Student{
        private String name;
        public Student(String name){
            this.name = name;
        }
    }
    
    main:
    //编译报错,因为没有无参构造器
    Student s = new Student();
  • 相关阅读:
    codeforces 455B A Lot of Games(博弈,字典树)
    HDU 4825 Xor Sum(二进制的字典树,数组模拟)
    hdu 1800 Flying to the Mars(简单模拟,string,字符串)
    codeforces 425A Sereja and Swaps(模拟,vector,枚举区间)
    codeforces 425B Sereja and Table(状态压缩,也可以数组模拟)
    HDU 4148 Length of S(n)(字符串)
    codeforces 439D Devu and Partitioning of the Array(有深度的模拟)
    浅谈sass
    京东楼层案例思维逻辑分析
    浅谈localStorage和sessionStorage
  • 原文地址:https://www.cnblogs.com/koss/p/14465926.html
Copyright © 2011-2022 走看看