Java 基础(JavaBean, 关键字-this)

JavaBean

JavaBean 是一种 Java 语言写成的可重用组件。

所谓 JavaBean,是指符合如下标准的 Java 类:

  • 类是公共的
  • 有一个无参的公共的构造器
  • 有属性,且有对应的 get,set方法

用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。

package com.klvchen.java1;

public class Customer {
	
	private int id;
	private String name;
	
	public Customer() {
		
	}
	
	public void setId(int i) {
		id = i;
	}
	
	public int getId() {
		return id;
	}
	
	public void setName(String n) {
		name = n;
	}
	
	public String getName() {
		return name;
	}

}

关键字-this

在 Java 中,this 关键字比较难理解,它的作用和其词义很接近。

  • 它在方法内部使用,即这个方法所属对象的引用;
  • 它在构造器内部使用,表示该构造器正在初始化的对象。

this 表示当前对象,可以调用类的属性,方法和构造器

什么时候使用 this 关键字?
当在方法内需要调用到该方法的对象时,就用 this。具体的:我们可以使用 this 来区分局部变量和属性。
比如: this.name = name;

this 关键字的使用:

  1. this 可以用来修饰:属性,方法,构造器

  2. this 修饰属性和方法
    this 理解为: 当前对象 或 当前正在创建的对象

    在类的方法中,我们可以使用 "this.属性" 或 "this.方法" 的方式,调用当前对象属性或方法。

    在类的方法中,我们可以使用 "this.属性" 或 "this.方法" 的方式,调用当前对象属性或方法。但是通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。

    在类的构造器中,我们可以使用 "this.属性" 或 "this.方法" 的方式,调用当前正在创建的对象属性或方法。但是,通常情况下,我们都选择省略"this."。特殊情况下,如果构造器的形参和类的属性同名时,我们必须显的使用 "this.变量" 的方式,表明此变量是属性,而非形参。

  3. this调用构造器

  • 我们在类的构造器中,可以显式的使用 "this(形参列表)"方式,调用本类中指定的其他构造器
  • 构适器中不能通过 "this(形参列表)" 方式调用自己
  • 如何一个类中有 n 个构造器,则最多有 n-1 构造器中使用了 "this(形参列表)"
  • 规定: "this(形参列表)" 必须声明在当前构造器的首行
  • 构造器内部,最多只能声明一个 "this(形参列表)", 用来调用其他的构造器
public class PersonTest {
	public static void main(String[] args) {
		Person p1 = new Person();
		
		p1.setAge(1);
		System.out.println(p1.getAge());
		
		System.out.println("==========================================");
		
		Person p2 = new Person("Jerry", 20);
	}
}


class Person{
	private String name;
	private int age;
	
	public Person() {
		this.eat();
		String info = "Person 初始化时,需要考虑如下 1,2,3,4...(并行40行代码)";
		System.out.println(info);
	}
	
	public Person(String name) {
		this();
		this.name = name;
	}
	
	public Person(int age) {
		this();
		this.age = age;
	}
	
	public Person(String name, int age) {
		this(age);
		this.name = name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	public int getAge() {
		return age;
	}
	
	public void eat() {
		System.out.println("人吃饭");
		this.study();
	}
	
	public void study() {
		System.out.println("人学习");
	}
}

运行结果:

原文地址:https://www.cnblogs.com/klvchen/p/14356414.html