Java 基础(构造器,属性赋值先后顺序)

构造器

构造器的作用:

  • 创建对象
  • 初始化对象的属性

说明:

  1. 如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器
  2. 定义构造器的格式: 权限修饰符 类名(行参列表){}
  3. 一个类中定义的多个构造器,彼此构成重载
  4. 一旦我们显示的定义了类的构造器之后,系统就不再提供默认的空参构造器
  5. 一个类中,至少会有一个构造器

构造器的特征:

  • 它具有与类相同的名称
  • 它不声明返回值类型。(与声明为void不同)
  • 不能被 static、final、synchronized、abstract、native修饰,不能有return语句返回值
public class PersonTest {
	public static void main(String[] args) {
		// 创建构造器对象:new + 构造器
		Person p = new Person();
		
		p.eat();
		
		Person p1 = new Person("Tom");
		
		System.out.println(p1.name);
	
	}

}

class Person{
	//属性
	String name;
	int age;
	
	//构造器
	public Person() {
		System.out.println("Person()........");
	}
	
	public Person(String n) {
		name = n;
	}
	
	public Person(String n, int a) {
		name = n;
		age = a;
	}
	
	public void eat() {
		System.out.println("人吃饭");
	}
	
	public void study() {
		System.out.println("人可以学习");
	}
}

运行结果:

属性赋值先后顺序

  1. 默认初始化
  2. 显式初始化
  3. 构造器中赋值
  4. 通过 "对象.方法" 或 "对象.属性" 的方式赋值
public class UserTest {
	public static void main(String[] args) {
		User u = new User();
		
		System.out.println(u.age);     // 1
		
		User u1 = new User(2);
		System.out.println(u1.age);    // 2
		
		User u2 = new User(2);
		u2.setAge(3);
		System.out.println(u2.age);    // 3
	}

}

class User{
	String name;
	int age = 1;
	
	public User() {
		
	}
	
	public User(int a) {
		age = a;
	}
	
	public void setAge(int a) {
		age = a;
	}
}
posted @ 2021-02-01 14:16  klvchen  阅读(573)  评论(0编辑  收藏  举报