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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象核心技术

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象核心技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象核心技術

一、抽象類與接口

1、抽象類

抽象類簡單來說就是表征一個對象是什么一種屬性。實例化即建立一個類的對象,而所謂抽象是指它之下沒有可以實例化的對象。

public abstract class ClassName {public void method(){System.out.println("test");}public static void main(String[] args){ClassName a=new ClassName(); //錯誤寫法a.method();} }

報錯信息:
java:com.test.ClassName是抽象的;無法實例化java: com.test.ClassName是抽象的; 無法實例化 java:com.test.ClassName;

public abstract class ClassName {public static void method(){System.out.println("test");}public static void main(String[] args){method();} }

運行結果:
testtest test
抽象類不能實例化,靜態方法不需要實例化,將Java的這兩個特性相結合有助于理解本段代碼。

2、抽象方法

public abstract class ClassName {public abstract void method();public static void main(String[] args){} }

只有聲明沒有實例的方法稱為抽象方法,抽象方法只能在抽象類中使用,不然會產生以下錯誤。

報錯信息:
java:com.test.ClassName不是抽象的,并且未覆蓋com.test.ClassName中的抽象方法method()java: com.test.ClassName不是抽象的, 并且未覆蓋com.test.ClassName中的抽象方法method() java:com.test.ClassName,com.test.ClassNamemethod()

3、繼承抽象類

public abstract class ClassName {public void method(){System.out.println("common method");}public abstract void method_abstract(); }public class ClassNames extends ClassName{@Overridepublic void method_abstract(){System.out.println("abstract method");}public static void main(String[] args){} }

語法特點:子類重寫父類的抽象方法。

4、接口

接口都沒有方法實現,并且抽象程度更高。

public interface ClassName {public void method();public static void main(String[] args){} }public class ClassNames implements ClassName{@Overridepublic void method(){System.out.println("method");}public static void main(String[] args){} }

二、異常處理

1、異常

分類特點可否忽略實例
檢查性異常程序員無法預見其是否出現用戶輸入了非法數據;要打開的文件不存在
運行時異常可能被程序員避免的異常
錯誤脫離程序員控制的問題內存溢出

此外網絡通信時連接中斷也是常見的異常。

2、異常分類

異常(Throwable)包括Error和Exception.

Exception下的異常分為兩大類,分別是Runtime異常和非Runtime異常。

Runtime異常:數組下標越界異常,空指針異常,對象類型強制轉換異常,以及數組存儲異常。

非Runtime異常(檢查異常):IOException,SqlException

3、try-catch格式

public class temp {public static void main(String[] args){try//用于監聽異常{int[] a=new int[3];for(int i=0;i<4;i++){System.out.println(a[i]);}}catch(IndexOutOfBoundsException a)//{System.out.println("IndexOutOfBoundsException");}} }

運行結果:
0,0,0,IndexOutOfBoundsException0, 0, 0, IndexOutOfBoundsException 0,0,0,IndexOutOfBoundsException

4、try-catch-finally格式

在3中可增添這樣一行代碼:

finally {System.out.println("finish printIn process"); }

運行結果增加finish printIn process,除此之外沒有其他變化。

5、throws/throw異常

public class temp {public static void main(String[] args){try//用于監聽異常{int[] a=new int[3];for(int i=0;i<4;i++){if(i==3){throw new IndexOutOfBoundsException("數組越界異常");}System.out.println(a[i]);}}catch(IndexOutOfBoundsException a)//{System.out.println("IndexOutOfBoundsException");}} }

6、自定義異常

class MyException extends Exception { // 自定義的類MyException(String s) {super(s);} }

三、實例

1、創建 Shape(圖形)類,該類中有一個計算面積的方法。圓形和矩形都繼承自圖形類,輸出圓形和矩形的面積。

public abstract class Shape {double a=10.0; //圓半徑或正方形邊長public abstract void size(); }public class Circle extends Shape{@Overridepublic void size() {System.out.println("S="+Math.PI*a*a);}public static void main(String[] args){Shape m=new Circle();m.size();} }public class Square extends Shape{@Overridepublic void size() {System.out.println("S="+a*a);}public static void main(String[] args){Shape n=new Square();n.size();} }

2、創建工廠類,工廠類中有一個抽象的生產方法,創建汽車廠和鞋廠類,重寫工廠類中的抽象生產方法,輸出汽車廠生產的是汽車,鞋廠生產的是鞋。

public abstract class Factory {public abstract void process(); }public class Car extends Factory{@Overridepublic void process() {System.out.println("汽車廠生產的是汽車");}public static void main(String[] args){Factory m=new Car();m.process();} }public class Shoes extends Factory{@Overridepublic void process() {System.out.println("鞋廠生產的是鞋");}public static void main(String[] args){Factory m=new Shoes();m.process();} }

參考資料:

1、https://github.com/datawhalechina/team-learning-program/blob/master/Java/7.%E6%8A%BD%E8%B1%A1%E7%B1%BB%E4%B8%8E%E6%8E%A5%E5%8F%A3.md

2、https://github.com/datawhalechina/team-learning-program/blob/master/Java/8.%20%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86.md

3、https://github.com/datawhalechina/team-learning-program/blob/master/Java/%E7%BB%83%E4%B9%A0%E9%A2%98%EF%BC%9A%E6%8A%BD%E8%B1%A1%E7%B1%BB%E4%B8%8E%E6%8E%A5%E5%8F%A3.md(實例出處)

4、搜索引擎及自己探索。

總結

以上是生活随笔為你收集整理的面向对象核心技术的全部內容,希望文章能夠幫你解決所遇到的問題。

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