• java 构造函数


    1. 构造函数的基本应用
    2.  1 package cn.sasa.demo1;
       2 
       3 public class Computer {
       4 
       5     //构造函数,可以在创建对象时,为一些变量给定初始值
       6     //如果不写构造函数,编译时默认会添加一个空参的构造函数
       7     //public Computer() {}
       8     
       9     //如果写了构造函数,那么编译时不会再添加空参的构造函数
      10     //在new对象时,因为没有空参的构造函数,所以在new的时候,必须调用有参的构造函数
      11     public Computer(String name) {
      12         this.name = name;
      13     }
      14     
      15     //构造函数可以重载
      16     public Computer(String name, double price) {
      17         this.name = name;
      18         this.price = price;
      19     }
      20     
      21     //构造函数可以为成员变量赋值,但只有在new的时候执行一次,之后不会再执行
      22     //所以还需要get和set方法,使这之后还可以修改变量值。
      23     private String name;
      24     public String getName() {
      25         return this.name;
      26     }
      27     public void setName(String name) {
      28         this.name = name;
      29     }
      30     
      31     private double price;
      32     public double getPrice() {
      33         return this.price;
      34     }
      35     public void setPrice(double price) {
      36         this.price = price;
      37     }
      38     
      39 }
       1 package cn.sasa.demo1;
       2 
       3 public class Test {
       4     public static void main(String[] args) {
       5         //因为没有空参的构造函数,所以必须调用有参的构造函数。
       6         //new的"()",就是在调用构造函数
       7         Computer com = new Computer("华硕");
       8         System.out.println(com.getName() + "======" + com.getPrice());
       9         com.setName("联想");
      10         System.out.println(com.getName());
      11         
      12         Computer com1 = new Computer("宏基" , 5000);
      13         System.out.println(com1.getName() + "======" + com1.getPrice());
      14     }
      15 }
    3. this()和super()
    • this()调用的是本类的构造函数,super()调用的是父类的构造函数
    • this()和super()在同一个构造方法中必须只有其中一个,并且放在第一行

     1 package cn.sasa.demo1;
     2 
     3 public class NoteComputer  extends Computer{
     4     public NoteComputer() {
     5         //子类继承父类,在构造函数的第一行默认添加了super()
     6         //但是父类重写了构造方法,没有空参的构造方法,就会报错
     7         //解决方法是用super()调用父类的其中一个构造方法
     8         super("");
     9     }
    10     
    11     public NoteComputer(boolean isTouch) {
    12         //this()调用的是本类的构造方法
    13         this();
    14         this.IsTouchScreen = isTouch;
    15     }
    16     
    17     private boolean IsTouchScreen;
    18     
    19     public boolean getIsTouchScreen() {
    20         return this.IsTouchScreen;
    21     }
    22     
    23     public void setIsTouchScreen(boolean isTouch) {
    24         this.IsTouchScreen = isTouch;
    25     }
    26 }
  • 相关阅读:
    20155226 2016-2017-2 《Java程序设计》第2周学习总结
    20155226 2016-2017-2 《Java程序设计》第一周学习总结
    20155226-虚拟机与Linux之初体验
    20155226田皓宇关于优秀技能经验以及c语言学习感悟和对JAVA的展望
    田皓宇的第一篇随笔
    20155220 2016-2017-2 《Java程序设计》第六周学习总结
    20155220 2016-2017-2《Java程序设计》第五周学习总结
    20155220 2016-2017-2 《java程序设计》第四周总结
    20155220 2016-2017-2《java程序设计》第三周学习总结
    20155220 2016-2017-2 《java程序设计》第二周学习总结
  • 原文地址:https://www.cnblogs.com/SasaL/p/10006043.html
Copyright © 2020-2023  润新知