日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java之Object类与instanceof关键字

發布時間:2025/5/22 java 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java之Object类与instanceof关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Object類是所有類的父類:

我們上下代碼:

1 package com.learn.chap03.sec14; 2 3 public class A { // 上面類A繼承了Object類,因此又可這樣定義: public class A extends Object{ 4 /** 5 * object類是所有類的父類 6 */ 7 public A(){ 8 super(); 9 } 10 }

?

我們可以通過多態,利用重寫Object類常用的toString()和equals(Object obj)方法,來完成我們自己的邏輯。

1 package com.learn.chap03.sec14; 2 3 public class People { 4 private String name; 5 6 /** 7 * 構造方法 8 * @param name 9 */ 10 public People(String name) { 11 this.name = name; 12 } 13 14 public String getName() { 15 return name; 16 } 17 18 public void setName(String name) { 19 this.name = name; 20 } 21 22 /** 23 * 重寫了Object類的toString()方法 24 */ 25 @Override 26 public String toString() { 27 return this.getName(); 28 } 29 30 /** 31 * 重寫了Object類的equals(Object obj)方法 32 */ 33 @Override 34 public boolean equals(Object obj) { 35 String name = ((People)obj).getName(); 36 return this.name == name; 37 } 38 39 public static void main(String[] args) { 40 People p1 = new People("zhangsan"); 41 People p2 = new People("zhangsan"); 42 People p3 = new People("lisi"); 43 //p1.equals(p2); 44 System.out.println("p1.equals(p2):"+p1.equals(p2)); 45 System.out.println("p1.equals(p3):"+p1.equals(p3)); 46 System.out.println(p1); 47 System.out.println(p1.toString()); 48 System.out.println(p2); 49 System.out.println(p2.toString()); 50 System.out.println(p3); 51 System.out.println(p3.toString()); 52 53 } 54 }

運行結果:

p1.equals(p2):true
p1.equals(p3):false
zhangsan
zhangsan
zhangsan
zhangsan
lisi
lisi

?

instanceof關鍵字

作用:判斷一個對象是否屬于一個類

格式: 對象 instanceof 類 ? ? ?(返回布爾型)

向下轉型做判斷

?

我們上下代碼:

1 package com.learn.chap03.sec15; 2 3 public class Animal { 4 5 public void say(){ 6 System.out.println("我是一個動物!"); 7 } 8 } package com.learn.chap03.sec15;public class Dog extends Animal{@Overridepublic void say() {System.out.println("我是一只狗");}/*** 定義子類方法*/public void f1(){System.out.println("狗喜歡啃骨頭");} } package com.learn.chap03.sec15;public class Cat extends Animal {@Overridepublic void say(){System.out.println("我是一只貓");}/*** 定義子類方法*/public void f2(){System.out.println("貓喜歡吃魚");} }

?

package com.learn.chap03.sec15;public class Test {/*** 靜態方法里面 無法調用非靜態方法 下面main方法是靜態的,所以doSomeThing方法必須要為靜態方法* @param animal*/public static void doSomeThing(Animal animal){animal.say();if(animal instanceof Dog){ // 向下轉型做判斷,這樣下面的代碼就會是安全的 ((Dog) animal).f1();}if(animal instanceof Cat){ // 向下轉型做判斷,這樣下面的代碼就會是安全的 ((Cat) animal).f2();}}public static void main(String[] args) {Animal dog = new Dog();System.out.println("dog對象是否屬于Animal類:"+(dog instanceof Animal));System.out.println("dog對象是否屬于Dog類:"+(dog instanceof Dog));System.out.println("dog對象是否屬于Cat類:"+(dog instanceof Cat));doSomeThing(new Dog());doSomeThing(new Cat());} }

?

運行結果:

dog對象是否屬于Animal類:true
dog對象是否屬于Dog類:true
dog對象是否屬于Cat類:false
我是一只狗
狗喜歡啃骨頭
我是一只貓
貓喜歡吃魚

?

轉載于:https://www.cnblogs.com/eaglezb/p/5964512.html

總結

以上是生活随笔為你收集整理的Java之Object类与instanceof关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。