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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)...

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:面向對象的三大特征封裝 (Encapsulation)繼承 (Inheritance)多態 (Polymorphism)編程思想:
面向過程:做某件事情都需要自己親歷親為,按照步驟去完成
面向對象:做某件事情不需要自己親歷親為,只需指定特定的對象去完成即可。1.現實世界就是由對象組成的,如下圖,萬物皆對象(不是單指女朋友也不是單指男朋友哈~)

2.面向對象設計和開發程序的好處
1.交流更加流暢
2.提高設計和開發效率
3.面向對象的思想符合人類思維習慣
二、對象和封裝1.類和對象的概念
1,類是對某一事物的描述,是抽象的,概念上的定義。
2,對象是實際存在的該事物的個體,是具體的、現實的。2.成員變量和局部變量的區別成員變量:定義在類中,有初始值局部變量:定義在方法中,無初始值3.方法的重載:OrverLoad
兩同三不同
1,在同一個類中,同一個方法名
2,參數列表不同(個數不同,順序不同,類型不同)
方法的重載跟返回值無關4.靜態變量(類變量)相當于全局變量
用static修飾的變量叫靜態變量也叫類變量
用static修飾的方法叫靜態方法也叫類方法
修飾代碼塊叫靜態塊(先于main之前調用,先塊后main)
可以直接通過類名直接調用 也可以 用對象調用,但是推薦類名調用
靜態方法中只能調用靜態變量
非靜態方法中不能定義靜態變量

5.構造方法:方法名和類名相同,沒有返回值類型,
每一個類都會有一個默認的無參構造方法
當寫了一個有參構造,默認無參構造就會消失
構造方法的作用:
1,實例化對象
2,給成員變量賦值
構造方法包含無參構造和有參構造
三、封裝和繼承1.封裝的概念:
將類的某些信息隱藏在類內部,不允許外部程序直接訪問,
而是通過該類提供的方法來實現對隱藏信息的操作和訪問。
封裝的好處:
1,隱藏類的實現細節
2,方便加入控制語句
3,方便修改實現
4,只能通過規定方法訪問數據2.繼承:extends
繼承是子類對父類的拓展,延伸
繼承的特點:
1,關鍵字 extends
2,java類沒有多繼承,只有單繼承,但是可以多重繼承
3,不能繼承父類的三種情況 private成員、構造方法、子類與父類不在同包,使用默認訪問權限的成員
4,java中所有的類的祖先都是Object類
5,不同的叫法 父類:基類,超類 子類:派生類

3.super: 對父類對象的引用
super(name):表示調用了父類的的有參構造方法。調用父類的構造方法,必須寫在構造方法中的第一行
還可以使用super關鍵字直接調用父類的方法,如 super.print();(后面的學習還會具體講)4.final 最終的
1,修飾變量、常量, 值不可改變
2,修飾方法, 不能被重寫
3,修飾類, 不能被繼承5.方法的重寫
重寫的特點:方法名 參數列表 返回值類型 必須和父類方法一致
訪問權限不能比父類的更嚴格
@Override //注解 規定它下面的方法必須是重寫的方法

6.總結:


四、抽象和多態1.抽象(abstract)
1,意義:抽象類是一種不完全規范,規定子類必須具備哪些方法
2,特點: 抽象類中可以有普通屬性和普通方法
抽象類中有構造方法,但是不能實例化
抽象類只能被繼承
抽象方法只能被子類重寫或者子類繼續抽象
有抽象方法的類必須是抽象類
抽象類中不一定有抽象方法2.多態什么是多態:生活中的多態:不同類型的打印機打印效果不同 如下圖:

程序中的多態:
一個對象在不同的載體中呈現不同的形態。
同一個引用類型,調用同一個方法,得到不同的結果。1,形參多態的必要條件
1,要有繼承關系
2,要有方法的重寫
3,父類的引用指向子類的對象,2,用途:可以減少類中的代碼量
可以提高代碼的可拓展性和可維護性
繼承是多態的基礎,沒有繼承就沒有多態3,使用父類作為方法形參和使用父類作為返回值類型是使用多態的常用方式。3.轉型
1,向上轉型:把子類轉換為父類,屬于自動類型轉換。
2,向下轉型:把父類轉換為子類,必須強制類型轉換。
注意:
1,向上轉型后通過父類引用變量調用的方法是子類覆蓋或繼承父類的方法,
通過父類引用變量無法調用子類特有的方法。
2,向下轉型后可以訪問子類特有的方法,必須轉換為父類指向的真實子類類型,
否則將出現轉換異常(ClassCastException)。4.instanceof:運算符用于判斷一個對象是否屬于一個類或實現一個接口。
instanceof:運算符通常和強制類型轉換結合使用,先通過instanceof進行類型判斷,
再進行相應的強制類型轉換。4.總結


五、接口1,接口的定義(interface):
是一種強制性(完全)的規范。 接口不是一個類,
定義一系列的屬性(靜態常量)和行為(抽象方法)2,接口的特征:
1.不能被實例化,接口沒有構造方法
2.接口只能被實現implements 或者繼續定義為接口
3.接口中的屬性默認是 public static fianl 修飾的靜態常量
4.接口中的方法默認是 public abstract 修飾的抽象方法
5. 只能有抽象方法
6. 接口中的方法必須被子類重寫
7…一個類實現多個接口用逗號隔開
public class Man implements IPerson,Program
8.如果一個類有繼承又有實現,那么是先繼承再實現
9.接口可以繼承多個接口,用逗號隔開!3,類和類的關系 繼承關系
類和接口的關系 實現關系 一個類可以實現多個接口()
接口和接口的關系 繼承關系 可以繼承多個接口4,類只能繼承一個父類,但可以實現多個接口,一個類如果實現了一個接口,則必須 實現接口中的全部方法,否則必須將其定義為抽象類。
Java通過實現接口達到了多重繼承的效果。5,接口表示一種約定,接口表示一種能力,接口體現了約定和實現相分離的原則。6,抽象類利于代碼復用,接口利于代碼維護。7.面向接口編程
1,通過面向接口編程,可以降低代碼間的耦合性,提高代碼的可拓展性和可維護性。
2,面向接口編程意味著:開發系統時,主體構架使用接口,接口構成系統的骨架,這樣就可以 通過更換實現接口的類來實現更換系統。8.接口有比抽象類更好的特性:
1,可以被多繼承
2,設計和實現完全分離
3,更自然的使用多態
4,更容易搭建程序框架
5,更容易更換實現9.接口和抽象類的區別:
1,接口不是類,抽象是是一個類
2,接口沒有構造方法,抽象類有構造方法 ,都不可以實例化
3,接口只能被實現 ,抽象類只能被繼承
4,接口中只能有公共的靜態常量和公共的抽象方法,抽象類中可以有普通的屬性和方法
5,接口可以多實現(多繼承),抽象類只能單繼承10.總結


六、異常(exception):1,什么是異常?
在程序運行過程中,發生了不可預料的錯誤,導致程序終止。2,異常的五個關鍵字:try、catch、finally、throw、throws

3,異常的格式
try{}catch(){}
try{}finally{}
try{}catch(){}finally{}
catch()塊可以有多個,但是catch塊捕捉有順序 先子類后父類4,try代碼塊中 表示 可能出現異常代碼塊,catch代碼中 捕捉到異常之后的處理。finally 表示不管有沒有異常都會執行的代碼塊5,finally塊中語句不被執行的唯一情況:在異常處理代碼中執行System.exit(1)。6,throw表示拋出異常
throws 表示聲明異常 告訴調用者這個方法有異常,誰調用誰處理7,throw和throws的區別
1.作用不同:throw用于在程序中拋出異常。throws用于聲明在該方法內拋出了異常
2.使用的位置不同:throw位于方法體內部,可以作為單獨語句使用。throws必須跟在
方法參數列表的后面,不能單獨使用。
3.內容不同:throw拋出一個異常對象,而且只能是一個。throws后面跟異常類,而且
可以跟多個異常類。
七、集合框架
在我的另一篇博文里有詳細介紹,下面是鏈接:
集合框架
八、多線程1.進程: 在內存中開辟了一塊空間,供程序運行。一個進程表示一個程序的運行。
一個程序可以開多個進程。2.線程:是程序運行中最小的單位。一個進程可以有多個線程,但至少有一個線程。
進程中執行運算的最小單位,可完成一個獨立的順序控制流程3.實現多線程的兩種方式:
1,寫一個類 繼承Thread
重寫run();方法
通過start();啟動線程
如果調用run方法,那么就只有一個main線程
2,實現 Runable接口
重寫run();方法
通過代理模式運行start();啟動線程4.設置線程運行的優先級1-10 :setPriority(10) Thread.MAX_PRIORITY Thread.MIN_PRIORITY
優先級高的線程會獲得更多的運行機會。5.synchronized:同步鎖 :當多個線程對象操縱同一資源時,要使用synchronized關鍵字來進行資源的
的同步處理,可以使用同步方法和同步代碼塊來實現。6.StringBuffer 線程安全 效率低
StringBuilder 線程不安全 效率高
HashTable 線程安全 效率低
HashMap 線程不安全 效率高7.線程睡眠:sleep()方法使線程轉到阻塞狀態8.線程強制運行:join()方法使當前線程暫停執行,等待調用該方法的線程結束后再繼續執行本線程。9.線程禮讓:yield()方法、暫停當前正在執行的線程對象,把執行機會讓給相同的或者更高優先級的線程。
九、File和IO流1、File:

2.File類常用的方法

3.以下是代碼演示:
package jbit.io;
import java.io.*;
public class FileMethods {
public static void main(String[] args) {
FileMethods2 fm=new FileMethods2();
File file=null;
file=new File("D:myDoctest.txt");
//fm.create(file);
fm.showFileInfo(file);
//fm.delete(file);
}
/**
* 創建文件的方法
* @param file 文件對象
*/
public void create(File file){
if(!file.exists()){
try {
file.createNewFile();
System.out.println("文件已創建!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 刪除文件
* @param file 文件對象
*/
public void delete(File file){
if(file.exists()){
file.delete();
System.out.println("文件已刪除!");
}
}
/**
* 顯示文件信息
* @param file 文件對象
*/
public void showFileInfo(File file){
if(file.exists()){ //判斷文件是否存在
if(file.isFile()){ //如果是文件
System.out.println("名稱:" + file .getName());
System.out.println("相對路徑: " + file.getPath());
System.out.println("絕對路徑: " + file.getAbsolutePath());
System.out.println("文件大小:" + file.length()+ " 字節");
}
if(file.isDirectory()){
System.out.println("此文件是目錄");
}
}else
System.out.println("文件不存在");
}
}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455564.java流的分類

5.文本文件的讀寫
用FileInputStream和FileOutputStream讀寫文本文件
用BufferedReader和BufferedWriter讀寫文本文件6.二進制文件的讀寫
使用DataInputStream和DataOutputStream讀寫二進制文件7.InputStream類常用方法
int read( )
int read(byte[] b)
int read(byte[] b,int off,int len)
void close( )
int available()
子類FileInputStream常用的構造方法
FileInputStream(File file)
FileInputStream(String name)8.OutputStream類常用方法
void write(int c)
void write(byte[] buf)
void write(byte[] b,int off,int len)
void close( )
子類FileOutputStream常用的構造方法
FileOutputStream (File file)
FileOutputStream(String name)
FileOutputStream(String name,boolean append)9.Writer類常用方法
write(String str)
write(String str,int off,int len)
void close()
void flush()
子類BufferedWriter常用的構造方法
BufferedReader(Writer out)10.總結

總結

以上是生活随笔為你收集整理的对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)...的全部內容,希望文章能夠幫你解決所遇到的問題。

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