Java面向对象--equeal和==
equals和==
笔记要点
== 判断左右两端的数据是否一致
equals: object类提供的一个方法,用来判断两个对象是否是一致的
equals 可以重写
实践代码
Cat类
public class Cat {
String name;
String color;
public Cat(String name, String color) {
this.color = color;
this.name = name;
}
// 子类对父类提供的equals方法不满意,自己创一个
public boolean equals(Cat c) {
if(this.color == c.color) { // 单纯的自己写判断的逻辑
return true;
} else {
return false;
}
}
public static void main(String[] args) {
Cat c1 = new Cat("小花","红色");
Cat c2 = new Cat("小花", "红色");
// == 一般用在基本数据类型上
System.out.println(c1 == c2); // false 默认判断的是两个对象的内存地址是否一致
System.out.println(c1.equals(c2)); // 默认调用的是Object提供的equal方法 结果为false
// 子类创建equals方法后,调用子类的equals方法,结果为true
}
}
Practice类
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
String username = "admin";
String password = "123";
System.out.println("请输入用户名");
Scanner sc = new Scanner(System.in);
String uname = sc.nextLine();
System.out.println("请输入密码");
String upwd = sc.nextLine();
//判断用户名和密码是否正确
if((uname.equals(username)) && upwd.equals(password)) {
System.out.println("登陆成功");
} else {
System.out.println("登陆失败");
}
}
}
小练习
模拟登陆
Practice类
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
String username = "admin";
String password = "123";
System.out.println("请输入用户名");
Scanner sc = new Scanner(System.in);
String uname = sc.nextLine();
System.out.println("请输入密码");
String upwd = sc.nextLine();
//判断用户名和密码是否正确
if((uname.equals(username)) && upwd.equals(password)) {
System.out.println("登陆成功");
} else {
System.out.println("登陆失败");
}
}
}
吾生也有涯,而知也无涯。