面向对象(中)-复习
1. 如何实现向下转型?需要注意什么问题?如何解决此问题?

Person p = new Man();
使用强转符:()
Man m = (Man)p;

可能ClassCastException异常。
if(p instanceof Man){
	Man m = (Man)p;
}

使用instanceof在进行向下转型前判断。

2. == 和 equals()有何区别?

==:可以使用在基本数据类型变量和引用数据类型变量中
	如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等
	如果比较的是引用数据类型变量,比较两个对象的地址值是否相等
	==符号使用时,必须保证符号左右两边的变量类型一致


equals():是一个方法,而非运算符
	只适用于引用数据类型
	Object类中定义的equals()和==的作用是相同的,比较两个对象的地址值是否相同
	像String、Date、File、包装类等都重写了Object类中的equals()方法,重写以后,比较的是两个对象的"实体内容"是否相同
	通常情况下,我们自定义的类如果使用equals()的话,也是比较两个对象的"实体内容"是否相同,就需要对Object类中的equals()进行重写
	重写的原则:比较两个对象的实体内容是否相同

3.class User{
	String name;
	int age;
		//重写其equals()方法

	public boolean equals(Object obj){
		if(obj == this){
			return true;
		}
		if(obj instanceof User){
			User u = (User)obj;
			return this.age == u.age && this.name.equals(u.name);
		}

		return false;
	}
}

4. 写出8种基本数据类型及其对应的包装类

byte	Byte
short	Short
int	Integer
long	Long
float	Float
double	Double
boolean	Boolean
char	Character

5. 基本数据类型、包装类与String三者之间如何转换

自动装箱、自动拆箱

Integer i = 10;

基本数据类型、包装类--->String:valueOf(XXX xx)
String--->基本数据类型、包装类:paserXxx(String s)
package top.qaqaq.java.P311;

public class User {
	String name;
	int age;
	
	@Override
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		
		if(obj instanceof User) {
			User user = (User)obj;
			return this.name.equals(user.name) && this.age == user.age;
		}
		
		return false;
	}

}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇