• 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("人学习");
    	}
    }
    

    运行结果:

  • 相关阅读:
    变量和数据类型
    Manager 多进程之间的数据共享
    多进程之间的数据传输 Pipe
    多进程
    消费者 生产者
    queue 队列优先级
    Python 最难的问题
    threading 多线程
    线程进程概述
    倒计时器 小玩意
  • 原文地址:https://www.cnblogs.com/klvchen/p/14356414.html
Copyright © 2020-2023  润新知