【Java】P13 JavaBean + UML类图 + this关键字
创始人
2025-05-30 21:31:35

JavaBean + UML类图 + this关键字

  • 什么是 JavaBean
  • UML 类图
  • this 关键字
    • this 调用属性和方法
    • this 调用类的构造器
  • 例题


什么是 JavaBean

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

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

  1. 类是公共的;
  2. 有一个无参的公共的构造器;
  3. 有属性,且有对应的 get、set 方法;

用户可以使用 JavaBean将功能、处理、值、数据库访问和其他任何用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。


UML 类图

常用的UML软件包含:PowerDesigner

在这里插入图片描述


this 关键字

使用 this 修饰的变量,表示的是属性;没有使用 this 修饰的,表示的是形参;

this 可以调成员变量、方法、构造器;


this 调用属性和方法

一般情况: 我们通过对象a调用方法,可以在方法内调用当前对象a的属性或其他方法。此时,我们可以在属性和其他方法前使用 “this.”,表示当前属性或方法所属的对象a。但是,在一般情况下,我们都选择省略 “this.” 结构;

特殊情况: 如果方法的形参与对象的属性同名了,我们必须使用 “this.” 进行区分。使用 “this.” 修饰的变量即为属性,没有使用 “this.” 修饰的变量,即为局部变量;

public void setAge(int age){this.age = age;
}
public Person(String name, String email){this.name = name;this.email = email;
}

this 调用类的构造器

格式:“this(形参列表)”
我们可以在类的构造器中,调用当前类中指定的其他的构造器;
要求:“this(形参列表)” 必须声明在当前构造器的首行;
结论:“this(形参列表)” 在每个构造器中最多声明一个;

public User(){// 模拟对象创建时,需要初始化50行代码。
}
public User(String name){this();		// 调用类的构造器User()this.name = name;
}
public User(String name, int age){this(name);		// 调用类的构造器User(String name)this.age = age;
}

例题

在这里插入图片描述

public class Boy {// 定义属性private String name;private int age;// 定义 getter setterpublic 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 Boy(){}public Boy(String name, int age){this.name = name;this.age = age;}// 定义方法public void marry(Girl girl){System.out.println("我想娶" + girl.getName());}public void shout(){System.out.println("呐喊");}
}
public class Girl {// 定义属性private String name;private int age;// 定义构造函数public Girl() {}public Girl(String name, int age){this.name = name;this.age = age;}// 定义 getter setterpublic void setName(String name){this.name = name;}public String getName(){return name;}// 定义方法public void marry(Boy boy){System.out.println("我想嫁给" + boy.getName());boy.marry(this);}// 比较两个Girl对象的大小(根据属性进行比较)public int compare(Girl girl){if(this.age > girl.age){return 1;}else if(this.age < girl.age){return -1;}else{return 0;}}
}
public class BoyGirlTest {public static void main(String[] args){Boy boy1 = new Boy("杰克", 24);Girl girl1 = new Girl("朱丽叶", 20);girl1.marry(boy1);Girl girl2 = new Girl("肉丝", 24);int compare = girl1.compare(girl2);if(compare > 0){System.out.println(girl1.getName() + "大");}else if(compare < 0){System.out.println(girl2.getName() + "大");}else{System.out.println("一样大");}}
}

备注: getset 以及 构造函数 的快捷键是 alt+insert


相关内容

热门资讯

最新或2023(历届)每日经典...   1.人生最糟的不是失去爱的人,而是因为太爱一个人,而失去了自己。   2.不要太努力想得到,因为...
最新或2023(历届)经典青春...   1、有时候,执着是一种负担,放弃是一种解脱。   2、人生最大的敌人是自己的怯懦。   3、总是...
最新或2023(历届)温暖人心...   1. 爱情不是一种虚荣,要拿出来在众人面前炫耀;爱情不是一件美丽的衣裳,要穿在外面给大家欣赏;爱...
最新或2023(历届)有品味的...   1. 总有很多东西无法挽留,比如走远的时光,比如枯萎的情感。   2. 走上的路不能后悔,但是可...
最新或2023(历届)有哲理的...   1.我们的那些大大小小的愿望,总是在不长不短的季节里,不痛不痒的放弃了。   2.不去刻意追求某...