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

    构造器在生成对象过程中对属性进行初始化赋值,可重载多个构造器,类中最少有一个隐式构造器,如果显式定义构造器, 系统就不在提供默认的空参数的构造器,所以在自定义构造器时,如果需要new Person() 需写一个空参构造器,不然会报错

    0.构造器定义方式

    权限修饰符 构造器名(参数列表){
        //  初始化代码体  
    }
    

      

    1.隐式

    public class PersonTest {
    	public static void main(String[] args) {
    		Person p = new Person();
    		System.out.println(p.age); // 0 默认值;
    	}
    }
    class Person{
    	int age; 
        //类体存在隐式空参构造器 权限修饰符跟class相同 }

    2.显式空参构造器(跟默认构造器一样 权限修饰符可以更改)

    public class PersonTest {
    	public static void main(String[] args) {
    		Person p = new Person();
    		System.out.println(p.age); // 0
    	}
    }
    class Person{
    	int age;
    	public Person() {
    		
    	}
    }
    

    3.显式有形参列表(重载)

    public class PersonTest {
    	public static void main(String[] args) {
    		Person p1 = new Person(20);
    		System.out.println("p1 age is :" + p1.getAge());
    		Person p2 = new Person("李狗蛋");
    		System.out.println("p2 name is :" + p2.getName());
    		Person p3 = new Person(18,"李狗蛋");
    		System.out.println("p3 age is :" + p3.getAge() + "	 name is: " + p3.getName());
    		
    	}
    }
    class Person{
    	private int age;
    	private String name;
    	public Person(int age) {
    		this.age = age;
    	}
    	public Person(String name) {
    		this.name = name;
    	}
    	public Person(int age,String name) {
    		this.age = age;
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public String getName() {
    		return name;
    	}
    }
    

    4.赋值顺序

    public class PersonTest {
    	public static void main(String[] args) {
    		Person p = new Person("李老八");
    		System.out.println("name"+p.getName());
    		p.setName("轩子巨二兔");
    		System.out.println("After setting name:" + p.getName());		
    	}
    }
    class Person{
    	private String name;   // null(默认) => “李老八”(构造器) => “轩子老师”(操作赋值)
    	public Person(String name) {
    		this.name = name;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    }
    

      

     

  • 相关阅读:
    JS 正则查找与替换
    MySQL 批量插入值
    Python/Django 批量下载Excel
    Python/Django 下载Excel2007
    Python/Django 下载Excel2003
    Python3安装Scrapy
    服务器响应状态码
    细说同域-同父域-跨域
    细说Ajax跨域
    PostgreSQL学习
  • 原文地址:https://www.cnblogs.com/liangfc/p/12173466.html
Copyright © 2011-2022 走看看