zoukankan      html  css  js  c++  java
  • 构造器

    1.什么是构造器

    构造器通常也叫构造方法、构造函数,构造器在每个项目中几乎无处不在。当你new一个对象时,就会调用构造器。构造器格式如下:
    [修饰符,比如public] 类名 (参数列表,可以没有参数){ //这里不能有return}
    1. 必须和类的名字相同
    2. 必须没有返回类型,也不能写void

    2.构造器的作用

    1. 使用new创建对象的时候必须使用类的构造器
    2. 构造器中的代码执行后,可以给对象中的属性初始化赋值

    3.怎么用构造器(还是不理解)

    显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数。
    隐式参数,是在类的方法中调用了类的实例域。这个被调用的实例域就是隐式参数。在
    以下的这个类中调用了a.ariseSalary(100),就用到了隐式参数。


    public class Abc
    {
      private double salary;
    
      public Abc(){
        this(100.0);
      }
      public Abc(double aSalary){
        salary = aSalary;
      }
    }
    
    Abc a = new Abc();
    
    a.ariseSalary(100);
    

    在上面的类中,如果调用了这个方法salary是实例域,ariseSalary方法中的salary就是隐式
    参数。如果在隐式参数的前面加上this,隐式参数就更清晰:

      public void ariseSalary(double em){
        double employ = this.salary * em;
        this.salary += employ;
      }
    

    推荐在隐式参数的前面加上this操作符。this操作符代表的是本类。

    无参构造器也可称作默认的构造器
    在编写类的时候没有写构造器,那么在编译之后也会自动的添加一个无参构造器,这个
    无参构造器也被称为默认的构造器。
    如:
    Student11 s11 = new Student11();

    构造器重载 用this调用自身属性

       public Student11(String name){
                //可使用this关键字,在一个构造器中可以调用另一个构造器的代码。
            this.name = name; //调用name = "tom";
            this.name = "我用this.name改了name的值"; //调用name = "tom";
            name = this.name;//改不了,应该要用特殊的函数才能改
    

    下面是示例代码

    public class 构造器 {
    
        public static void main(String[] args) {
            Student s = new Student();
            System.out.println("输出无参构造器的值"+s.name);
            Student11 s11 = new Student11();
            System.out.println("输出无参构造器的值"+s11.name);
    
    
    
        }
        // 无参构造器也可称作默认的构造器
        /*在编写类的时候没有写构造器,那么在编译之后也会自动的添加一个无参构造器,这个
    无参构造器也被称为默认的构造器。 */
        public static class Student{
            private String name;
            public Student(){
            name = "tom";
            }
            }
        //构造器重载 用this调用自身属性
        public static class Student11{ //若Student11后加了()并定义了属性如String name,这样就不可以用Student11 s11 = new Student11();这种调用方式是无参构造器
            private String name;
            public Student11(){
            name = "tom11";
            }
            public Student11(String name){
                //可使用this关键字,在一个构造器中可以调用另一个构造器的代码。
            this.name = name; //调用name = "tom";
            this.name = "我用this.name改了name的值"; //调用name = "tom";
            name = this.name;//改不了,应该要用特殊的函数才能改
    
            }
            }
    }
    
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    winform登录成功后打开主窗体的合理写法
    C#将字符串转换为整型的三种方法的总结
    win7下安装Oracle11g
    无法将文件“.exe”复制到“.exe”。文件“.exe”正由另一进程使用,因此该进程无法访问该文件
    GDI+
    “System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常
    winform中为ComboBox控件添加“请选择”或“全部”选项
    IE8不能上传、插入图片的解决办法!
    asp.net mvc实现上传文件
    winform关闭窗体时确认框提示两次
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15096314.html
Copyright © 2011-2022 走看看