Java的对象和类,构造器详解

Java的对象和类

package OPP;

//学生的类,一个类中只存在属性和方法
public class Student {
   //属性
   String name;//没有赋值默认值为null
   int age;//默认值为0
   //方法
   public void student(){
       System.out.println(this.name+"在学习");

  }
}
package OPP;

//一个项目应该只存在一个main方法,在主程序中
public class Application {
   public static void main(String[] args) {
       //实例化后会返回自己的一个对象
       //student对象是Student类的具体实例
       Student student = new Student();
       //为student.name赋值
       student.name="小明";
       System.out.println(student.name);//小明
       Student xiaoming = new Student();
       /*新创建的这个对象xiaoming与student没有关系
       student.name="小明"的赋值并不会赋给xiaoming
        */
       System.out.println(xiaoming.name);//null
       //student中方法的调用
       student.student();//小明在学习
       xiaoming.student();//null在学习

  }
}

 

构造器

特点

package Demo01;

public class Use {
   public Use() {
       //构造器特点
       //1.必须与类名相同
       //2.没有返回值和void
  }
}
package Demo01;

public class Application {
   public static void main(String[] args) {
       Use use = new Use();
       //Use中什么都没有写,但是还可以new出来
       //原因:在什么都没有写的Use类中有一个不显示的构造器
  }
}

作用

package Demo01;

public class Use {
   String name;
   //构造器的作用
   //1.new时必须要有构造器,new的本质就是调用构造器
   //2.实例化初始值

   public Use() {
       this.name="小明";//实例化初始值
  }
}
package Demo01;

public class Application {
   public static void main(String[] args) {
       Use use = new Use();
       System.out.println(use.name);
       /*
       最后输出为小明,并不是null
       因为在构造器中进行了实例化初始值了
        */

  }
}

无参构造器和有参构造器

package Demo01;

public class Use {
   String name;
   int age;

   //无参构造必须显示出来,否则new Use();会报错
   public Use() {
       this.name="小明";
  }
   //定义了有参数构造,无参构造必须显示定义
   public Use(String name) {
       this.name = name;
  }

   public Use(String name, int age) {
       this.name = name;
       this.age = age;
  }
   //Alt + Insert创建构造器
}
package Demo01;

public class Application {
   public static void main(String[] args) {
       Use use = new Use("小红");

       System.out.println(use.name);
       /*
       输出的为小红
       因为Use use = new Use("小红");
       有参数调用有参构造进行执行
        */
       Use use2 = new Use("小红",20);
       System.out.println(use2.age);
       //传两个参数调用两个参数的构造器



  }
}

 

 

/*
构造器:特点:
      1.名字与类名相同
      2.没有返回值和void
      作用:
      1.new的实质就是在调用构造器
      2.实例化初始值
      注意:
      有有参构造时无参构造必须写出来才能调用
      Alt + Insert 创建构造器
       
*/

 

posted @ 2021-03-12 18:35  默默努力的路人甲  阅读(57)  评论(0)    收藏  举报