zoukankan      html  css  js  c++  java
  • 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("人学习");
    	}
    }
    

    运行结果:

  • 相关阅读:
    最简单,小白易上手 ajax请求数据库信息,echarts页面显示,无需跳转servlet
    北京市民信件大数据简单分析可视化(附加源码) 同含爬虫代码
    echart 横轴 上下分开显示
    echart 横轴倾斜
    echarts 柱状图横轴(x轴)数量太多,可以加一个滚动轴
    错误: 找不到或无法加载主类 org.apache.sqoop.Sqoop
    JAVA爬虫——爬取采集北京市政百姓信件内容——首都之窗(采用htmlunit,webmagic)附源代码、htmlUnit webmagic JAR包
    eclipse 中的DFS Location 找不到了(已解决)
    在Scala 中 val 与 var 的区别(言简意赅 小白易懂 实例代码)
    第21届国际足联世界杯观后感
  • 原文地址:https://www.cnblogs.com/klvchen/p/14356414.html
Copyright © 2011-2022 走看看