Compare commits
8 Commits
49c8f29d83
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| ae87d6d972 | |||
| b208689e11 | |||
| 890ad81fad | |||
| 2d28aa4c3e | |||
| c4394dc6b5 | |||
| 21914a5025 | |||
| 3956c0173d | |||
| aa4af28eec |
28
day11/src/com/inmind/class_member_var09/Armor.java
Normal file
28
day11/src/com/inmind/class_member_var09/Armor.java
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package com.inmind.class_member_var09;
|
||||||
|
|
||||||
|
//防御装类
|
||||||
|
public class Armor {
|
||||||
|
private String name;
|
||||||
|
private int protectNum;//防御值
|
||||||
|
|
||||||
|
public Armor(String name, int protectNum) {
|
||||||
|
this.name = name;
|
||||||
|
this.protectNum = protectNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getProtectNum() {
|
||||||
|
return protectNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProtectNum(int protectNum) {
|
||||||
|
this.protectNum = protectNum;
|
||||||
|
}
|
||||||
|
}
|
||||||
46
day11/src/com/inmind/class_member_var09/Demo07.java
Normal file
46
day11/src/com/inmind/class_member_var09/Demo07.java
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package com.inmind.class_member_var09;
|
||||||
|
/*
|
||||||
|
类作为成员变量类型(hero,weapon,armor)
|
||||||
|
案例:英雄角色,获取武器,获取防御装,闯关
|
||||||
|
*/
|
||||||
|
public class Demo07 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//创建英雄角色对象
|
||||||
|
Hero hero = new Hero();
|
||||||
|
hero.setName("德玛西亚");
|
||||||
|
|
||||||
|
//打怪,掉落武器
|
||||||
|
Weapon weapon = new Weapon("屠龙刀", 999);
|
||||||
|
hero.setWeapon(weapon);
|
||||||
|
//打怪,掉落防具
|
||||||
|
Armor armor = new Armor("复活甲", 888);
|
||||||
|
hero.setArmor(armor);
|
||||||
|
|
||||||
|
//打boss
|
||||||
|
hero.attack();
|
||||||
|
//boss回击
|
||||||
|
hero.protect();
|
||||||
|
|
||||||
|
System.out.println("BOSS掉落了一本技能书");
|
||||||
|
Skill skill = new Skill() {
|
||||||
|
@Override
|
||||||
|
public void outSkill() {
|
||||||
|
System.out.println("施放野火燎原技能,团队伤害9999");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "野火燎原";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
//装备技能
|
||||||
|
hero.setSkill(skill);
|
||||||
|
//英雄获取自己的技能,并施放
|
||||||
|
hero.getSkill().outSkill();
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("游戏结束");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
78
day11/src/com/inmind/class_member_var09/Hero.java
Normal file
78
day11/src/com/inmind/class_member_var09/Hero.java
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
package com.inmind.class_member_var09;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Hero {
|
||||||
|
private String name;
|
||||||
|
private Weapon weapon;
|
||||||
|
private Armor armor;
|
||||||
|
|
||||||
|
//背包
|
||||||
|
private ArrayList<Weapon> weapons;
|
||||||
|
//拥有技能
|
||||||
|
private Skill skill;
|
||||||
|
|
||||||
|
public Skill getSkill() {
|
||||||
|
return skill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSkill(Skill skill) {
|
||||||
|
this.skill = skill;
|
||||||
|
System.out.println("英雄"+this.name+"装备了技能-"+this.skill.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hero() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Hero(String name, Armor armor, Weapon weapon) {
|
||||||
|
this.name = name;
|
||||||
|
this.armor = armor;
|
||||||
|
this.weapon = weapon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Weapon getWeapon() {
|
||||||
|
return weapon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWeapon(Weapon weapon) {
|
||||||
|
this.weapon = weapon;
|
||||||
|
System.out.println("英雄"+this.name+"装备了"+this.weapon.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Armor getArmor() {
|
||||||
|
return armor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArmor(Armor armor) {
|
||||||
|
this.armor = armor;
|
||||||
|
System.out.println("英雄"+this.name+"装备了"+this.armor.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Weapon> getWeapons() {
|
||||||
|
return weapons;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWeapons(ArrayList<Weapon> weapons) {
|
||||||
|
this.weapons = weapons;
|
||||||
|
}
|
||||||
|
|
||||||
|
//行为
|
||||||
|
//攻击
|
||||||
|
public void attack(){
|
||||||
|
System.out.println(this.name+"使用了-"+this.weapon.getName()+"-武器,输出了"+this.weapon.getHurt()+"伤害");
|
||||||
|
}
|
||||||
|
|
||||||
|
//防御
|
||||||
|
public void protect(){
|
||||||
|
System.out.println(this.name+"穿戴了-"+this.armor.getName()+"-防具,抵消了"+this.armor.getProtectNum()+"伤害");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
8
day11/src/com/inmind/class_member_var09/Skill.java
Normal file
8
day11/src/com/inmind/class_member_var09/Skill.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package com.inmind.class_member_var09;
|
||||||
|
|
||||||
|
public interface Skill {
|
||||||
|
//施放技能的方法
|
||||||
|
void outSkill();
|
||||||
|
|
||||||
|
String getName();
|
||||||
|
}
|
||||||
28
day11/src/com/inmind/class_member_var09/Weapon.java
Normal file
28
day11/src/com/inmind/class_member_var09/Weapon.java
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package com.inmind.class_member_var09;
|
||||||
|
|
||||||
|
//武器类
|
||||||
|
public class Weapon {
|
||||||
|
private String name;
|
||||||
|
private int hurt;
|
||||||
|
|
||||||
|
public Weapon(String name, int hurt) {
|
||||||
|
this.name = name;
|
||||||
|
this.hurt = hurt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHurt() {
|
||||||
|
return hurt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHurt(int hurt) {
|
||||||
|
this.hurt = hurt;
|
||||||
|
}
|
||||||
|
}
|
||||||
39
day11/src/com/inmind/local_innerclass07/OuterClass.java
Normal file
39
day11/src/com/inmind/local_innerclass07/OuterClass.java
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
package com.inmind.local_innerclass07;
|
||||||
|
|
||||||
|
import com.inmind.member_innerclass06.Member_Outer_Class;
|
||||||
|
|
||||||
|
/*
|
||||||
|
局部内部类定义(方法中)
|
||||||
|
局部内部类的格式:
|
||||||
|
public class 外部类名{
|
||||||
|
方法修饰符 返回值类型 成员变量名(参数列表){
|
||||||
|
class 局部内部类名{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
注意:局部内部类是定义在方法中,只能够在该定义方法中使用
|
||||||
|
*/
|
||||||
|
public class OuterClass {//外部类
|
||||||
|
|
||||||
|
//成员方法
|
||||||
|
public void method(){
|
||||||
|
int num = 10;//局部变量
|
||||||
|
//局部内部类
|
||||||
|
class InnerClass{
|
||||||
|
int num = 20;
|
||||||
|
static int i = 30;
|
||||||
|
public void innerMethod(){
|
||||||
|
System.out.println(num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
InnerClass innerClass = new InnerClass();
|
||||||
|
System.out.println(innerClass.num);
|
||||||
|
innerClass.innerMethod();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void method1(){
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.inmind.noname_innerclass08;
|
||||||
|
|
||||||
|
public abstract class AbstractClass {
|
||||||
|
public abstract void method1();
|
||||||
|
}
|
||||||
10
day11/src/com/inmind/noname_innerclass08/Animal.java
Normal file
10
day11/src/com/inmind/noname_innerclass08/Animal.java
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package com.inmind.noname_innerclass08;
|
||||||
|
|
||||||
|
public class Animal {
|
||||||
|
int age;
|
||||||
|
String name;
|
||||||
|
|
||||||
|
public void eat(){
|
||||||
|
System.out.println("动物要吃吃吃");
|
||||||
|
}
|
||||||
|
}
|
||||||
93
day11/src/com/inmind/noname_innerclass08/Demo06.java
Normal file
93
day11/src/com/inmind/noname_innerclass08/Demo06.java
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
package com.inmind.noname_innerclass08;
|
||||||
|
/*
|
||||||
|
匿名内部类:定义在方法中的一个没有名字的类
|
||||||
|
|
||||||
|
之前我们使用的一个类的子类,或者接口的实现类时,必定要先定义.java文件,再创建出对象,调用方法,但是
|
||||||
|
如果该子类或者实现类只用一次,那么.java文件就有点多余了,这时就可以使用匿名内部类
|
||||||
|
|
||||||
|
匿名内部类定义:
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("匿名内部类的method方法被调用了");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
必须跟new 接口名(匿名内部类定义) ,new 抽象类名(匿名内部类定义),new 普通类名(匿名内部类定义)后面。
|
||||||
|
*/
|
||||||
|
public class Demo06 {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//普通接口的使用
|
||||||
|
MyInterfaceImpl impl = new MyInterfaceImpl();
|
||||||
|
impl.method();
|
||||||
|
//多态的使用:父类引用指向子类对象
|
||||||
|
MyInterface impl1 = new MyInterfaceImpl();
|
||||||
|
impl1.method();
|
||||||
|
|
||||||
|
//能不能将MyInterfaceImpl.java这个类的定义,直接省略掉,那就使用匿名内部类
|
||||||
|
MyInterface impl2 = new MyInterface(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("匿名内部类中的method方法被调用了");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
impl2.method();
|
||||||
|
//---------------------------------------------------
|
||||||
|
//抽象父类的匿名内部类
|
||||||
|
// 使用AbstractClass,但是不定义出它的子类的java文件,使用匿名内部类
|
||||||
|
AbstractClass ac = new AbstractClass(){
|
||||||
|
@Override
|
||||||
|
public void method1() {
|
||||||
|
System.out.println("匿名内部类(子类)实现了抽象父类的method1方法");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ac.method1();
|
||||||
|
//-----------------------------------------------------
|
||||||
|
//普通类的匿名内部类
|
||||||
|
Animal dog = new Animal(){
|
||||||
|
@Override
|
||||||
|
public void eat() {
|
||||||
|
System.out.println("狗吃骨头");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
dog.eat();
|
||||||
|
|
||||||
|
|
||||||
|
//匿名内部类和匿名对象
|
||||||
|
//new Scanner(System.in).nextInt();//匿名对象
|
||||||
|
|
||||||
|
/*
|
||||||
|
new MyInterface(){
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("匿名内部类中的method方法被调用了");
|
||||||
|
}
|
||||||
|
} 是匿名对象
|
||||||
|
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("匿名内部类中的method方法被调用了");
|
||||||
|
}
|
||||||
|
}是匿名内部类
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
new MyInterface(){
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("匿名内部类中的method方法被调用了");
|
||||||
|
}
|
||||||
|
}.method();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void method(){
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.inmind.noname_innerclass08;
|
||||||
|
|
||||||
|
public interface MyInterface {
|
||||||
|
void method();
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.inmind.noname_innerclass08;
|
||||||
|
|
||||||
|
public class MyInterfaceImpl implements MyInterface{
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("MyInterfaceImpl类中的method方法被调用了");
|
||||||
|
}
|
||||||
|
}
|
||||||
14
javaSE-day01/src/com/inmind/object01/Demo01.java
Normal file
14
javaSE-day01/src/com/inmind/object01/Demo01.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
/*
|
||||||
|
Object:是所有类的父类,java中所有的类直接或者间接继承自Object
|
||||||
|
*/
|
||||||
|
public class Demo01 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//普通创建对象
|
||||||
|
Person p = new Person();
|
||||||
|
Student s = new Student();
|
||||||
|
//多态创建对象
|
||||||
|
Person p1 = new Student();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
37
javaSE-day01/src/com/inmind/object01/Demo02.java
Normal file
37
javaSE-day01/src/com/inmind/object01/Demo02.java
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Object类的toString方法
|
||||||
|
String toString() 返回对象的字符串表示形式。
|
||||||
|
|
||||||
|
Object类的toString的源码:
|
||||||
|
public String toString() {
|
||||||
|
return getClass().getName() + "@" + Integer.toHexString(hashCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
注意:在实际开发中,一个对象的地址值对于我们而言,没有太大的帮助,我们程序员希望直接看到
|
||||||
|
该对象的内容(属性),那怎么办呢???
|
||||||
|
|
||||||
|
现在父类Object类的toString功能,不符合子类Person的需求,那么我们就可以在对应的子类中重写toString
|
||||||
|
|
||||||
|
总结:今后打印对象时,如果发现打印时输出了地址,但是我们想看属性内容,应该在该对象的类中重写toString,
|
||||||
|
不用手动写alt+insert自动生成即可
|
||||||
|
*/
|
||||||
|
public class Demo02 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Person p = new Person();
|
||||||
|
p.age = 20;
|
||||||
|
p.name = "张三";
|
||||||
|
System.out.println(p);//com.inmind.object01.Person@3b07d329,此处调用的是Object的toString方法
|
||||||
|
|
||||||
|
ArrayList<Integer> lists = new ArrayList<>();
|
||||||
|
lists.add(1);
|
||||||
|
lists.add(2);
|
||||||
|
lists.add(3);
|
||||||
|
//为何现在打印对象内容变了??因为println(Object):底层调用的是该对象的toString方法并返回,但是ArrayList重写了父类的toString方法
|
||||||
|
System.out.println(lists);//[1, 2, 3]
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
42
javaSE-day01/src/com/inmind/object01/Demo03.java
Normal file
42
javaSE-day01/src/com/inmind/object01/Demo03.java
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Object类
|
||||||
|
boolean equals(Object obj) 判断2个对象的内容是否相同
|
||||||
|
|
||||||
|
在实际开发中,地址值对于我们而言没有太大的作用,比较关心的数据内容,经常将内容相同的
|
||||||
|
2个对象,看作是同一个
|
||||||
|
|
||||||
|
对于引用数据类型:
|
||||||
|
==:比较的是地址值
|
||||||
|
equals:比较的是内容
|
||||||
|
|
||||||
|
Object类底层equals源码:
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
return (this == obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
如果父类的内容比较功能equals,不符合子类需求,那就重写equals方法即可
|
||||||
|
|
||||||
|
总结:每个对象的equals方法继承自Object类,默认使用==比较地址值,这个对于我们而言,不满足咱们需求
|
||||||
|
因此我们会在每个类中重写equals方法,不用手动写,直接alt+insert自动生成
|
||||||
|
*/
|
||||||
|
public class Demo03 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//引用数据类型
|
||||||
|
String s1 = "abc";
|
||||||
|
String s2 = "abc";
|
||||||
|
|
||||||
|
System.out.println(s1 == s2);//true 比较的是地址
|
||||||
|
|
||||||
|
//引用数据类型Person
|
||||||
|
Person p1 = new Person("张三", 20);
|
||||||
|
Person p2 = new Person("张三", 20);
|
||||||
|
System.out.println(p1 == p2);//false
|
||||||
|
System.out.println(p1.equals(p2));//true
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
58
javaSE-day01/src/com/inmind/object01/Person.java
Normal file
58
javaSE-day01/src/com/inmind/object01/Person.java
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class Person {//直接继承自Object
|
||||||
|
String name;
|
||||||
|
int age;
|
||||||
|
|
||||||
|
public Person() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Person(String name, int age) {
|
||||||
|
this.name = name;
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Person{" +
|
||||||
|
"age=" + age +
|
||||||
|
", name='" + name + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
/*@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
//我希望在Person比较时,只比较内容(姓名和年龄),而不是地址
|
||||||
|
//只要姓名和年龄是一致的,那就是同一个人
|
||||||
|
//先直接判断地址是否相同,如果地址相同,则认为内容相同
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//先判断类型,如果类型不一致,则认为内容不同
|
||||||
|
if (obj instanceof Person) {
|
||||||
|
//如果是同一个类型,则进行属性的比较
|
||||||
|
Person p2 = (Person) obj;
|
||||||
|
Person p1 = this;
|
||||||
|
*//*if (p1.name.equals(p2.name) && p1.age == p2.age) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}*//*
|
||||||
|
return p1.name.equals(p2.name) && p1.age == p2.age;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (o == null || this.getClass() != o.getClass()) return false;
|
||||||
|
|
||||||
|
Person person = (Person) o;
|
||||||
|
return age == person.age && Objects.equals(name, person.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
4
javaSE-day01/src/com/inmind/object01/Student.java
Normal file
4
javaSE-day01/src/com/inmind/object01/Student.java
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
package com.inmind.object01;
|
||||||
|
|
||||||
|
public class Student extends Person{//间接继承自Object
|
||||||
|
}
|
||||||
28
javaSE-day01/src/com/inmind/objects02/Demo04.java
Normal file
28
javaSE-day01/src/com/inmind/objects02/Demo04.java
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package com.inmind.objects02;
|
||||||
|
|
||||||
|
import com.inmind.object01.Person;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/*
|
||||||
|
4.Objects类的equals方法
|
||||||
|
static boolean equals(Object a, Object b) 返回 true如果参数相等,彼此 false否则。
|
||||||
|
|
||||||
|
Objects类的equals方法的作用:在实现判断2个对象是否相同的基础上,有效地避免空指针异常
|
||||||
|
*/
|
||||||
|
public class Demo04 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Person p1 = new Person("张三", 20);
|
||||||
|
Person p2 = new Person("张三", 20);
|
||||||
|
//普通的判断写法
|
||||||
|
System.out.println(p1.equals(p2));//true
|
||||||
|
//不小心,将p1初始化了
|
||||||
|
// p1 = null;
|
||||||
|
|
||||||
|
/*if (p1 != null){
|
||||||
|
System.out.println(p1.equals(p2));
|
||||||
|
}*/
|
||||||
|
System.out.println(Objects.equals(p1, p2));
|
||||||
|
//请问Objects.equals,它本身有比较内容的功能吗???没有,它使用的是p1对象的equals方法
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user