JAVA大學教學課件第六章對象和接口.ppt_第1頁
JAVA大學教學課件第六章對象和接口.ppt_第2頁
JAVA大學教學課件第六章對象和接口.ppt_第3頁
JAVA大學教學課件第六章對象和接口.ppt_第4頁
JAVA大學教學課件第六章對象和接口.ppt_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講教師: xxx,Java語言程序設計, Java語言程序設計,第六章:類、對象和接口,6.1 什么類-1,面向對象程序(OOP)語句能使現(xiàn)實世界中的概念,在計算機程序中變成模塊。它包括整個程序、程序的模塊及數據和算法。 OOP語言有三個特征:封裝性、繼承性及多態(tài)性。所有這些特征與類的概念是息息相關的。 類封裝了一類對象的狀態(tài)和方法。類是定義對象的模板。 類的聲明: class People ,6.1 什么類-2,6.1 什么類-3,類的聲明與定義:,6.1 什么類-4,類的聲明與定義: public :這個public關鍵字聲明了類可以在其它任何的類中使用。 abstract :聲明的類不能被實例化。 final:聲明的類不能被繼承,即不能有子類。 class NameOfClass :關鍵字class指示編譯器類的聲明以及類的名字是NameOfClass。 extends Super :這個extends 子句認為Super是類的父類。 implements Interfaces :為了聲明類可執(zhí)行一個或多個接口,可以使用關鍵字implements并且在其后面給出由類執(zhí)行的接口名字的列表,它們是以逗號分隔的。,6.1 什么類-5,成員變量和局部變量: (1)成員變量和局部變量的類型可以是任何一種數據類型。 (2)成員變量在整個類內有效,局部變量只在定義它的方法內有效。 class Aint x; int f()int a; a = x; int g()int y; y=a; (3)成員變量又分為實例成員變量和類成員變量。 class dogfloat x; static int y; (4)變量的名字與成員變量的名字相同,成員變量被隱藏。 class Tomint x=98,y; void f()int x=3; y=x; (5)上面情況中要在該方法內使用成員變量,使用this; class Jerry float x,y,x; void g(float z) float x=1;y=23; this.x=x; this.y=y;this.z=z;,6.1 什么類-6,方法: (1)方法的重載。 class Tom float jerry(float s)return s float jerry(float x,int y)return x*x+y*y; (2)構造方法。 class Pointint x,y; Pointx=67; y=100; (3)類方法和實例方法。 class Aint a=23; float max(float x,float y); static float jerry() ,6.1 什么類-7,= 和 equals()的區(qū)別 傳值和傳引用 內部類 匿名類,6.2 什么對象-1,創(chuàng)建對象: (1)對象的聲明。 Point p1; (2)為聲明的對象分配內存空間。 p1=new Point(); (3)p1是引用,使用new之前,并未對象分配空間。,0x1234,12,24,p1,x,y,6.2 什么對象-2,類中的訪問權限:,6.3 類的繼承-1,創(chuàng)建子類: 格式如下:class Students extends People。 (1)子類自然繼承父類中不是private的成員。如果一個類沒有使用extends關鍵字,系統(tǒng)默認是Object的子類。Object 是包java.lang中的類。 (2)成員變量的隱藏和方法的重寫。 class Chengjifloat f(float x,float y)return x*y; class Xiangjia extends Chengji float f(float x,float y)return x+y ; public class Test public static void main(String args) Xiangjia sum; sum=new Xiangjia(); sum.f(4,6);,6.3 類的繼承-2,(3)運行時的多態(tài)性。 class Shape float area()return 0.0; class Circle extends Shape float r; float area()return 3.14*r*r; class Rect extends Shape float x,y; float area()return x*y; public class Test public static void main(String args) Shape s; s=new Circle(); s.area();,6.3 類的繼承-3,(4)final類和final方法。final類不能被繼承,final方法不能被修改。 final class A class B extends A (5)abstract 類和abstract方法。 abstract 類不能創(chuàng)建對象,必須產生子類,由子類創(chuàng)建對象。 abstract方法,只允許聲明,不允許實現(xiàn)。 abstract 類可以沒有abstract方法;但一個類如果有abstract方法,這個類必須用abstract修飾。 (6)使用super關鍵字。在子類中想使用被子類隱藏的父類的成員需利用super關鍵字。,6.3 類的繼承-4,public class Employee private String name; private int salary; public String getDetails() return Name: “ + name + “nSalary: “ + salary; public class Manager extends Employee private String department; public String getDetails() return super.getDetails() + / call parents / method “nDepartment: “ + department; ,6.3 類的繼承-5,(7)instanceof 運算符 : public class Employee extends Object public class Manager extends Employee public class Contractor extends Employee public void method(Employee e) if (e instanceof Manager) / Get benefits and options along with salary else if (e instanceof Contractor) / Get hourly rates else / temporary employee ,6.4 接口-1,Java不支持多重繼承,一個子類只能有一個父類。Java使用接口來實現(xiàn)多個接口。 接口的定義與聲明: interface Printable final int MAX =100;void add(); float sum(float x,float y); 接口的使用: class A impelents Printable ,Addable。 接口中的方法默認是public的,所以類在實現(xiàn)接口方法時,一定用public來修飾。,6.4 接口-2,import java.awt.*; import java.applet.*; import java.awt.event.*; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class s extends Applet implements MouseListener Image img1,img2; AudioClip clip; boolean tag; public void init() img1=getImage(getCodeBase(),“ys.jpg“); img2=getImage(getCodeBase(),“ws.jpg“); clip=getAudioClip(getCodeBase(),“bg.au“); tag=true; addMouseListener(this); ,6.4 接口-3,public void paint(Graphics g) if (tag)g.drawImage(img1,0,0,this); clip.loop(); else g.drawImage(img2,0,0,this); clip.stop(); public void mouseClicked(MouseEvent parm1) / TODO: Add your code here tag= !tag; repaint(); public void destroy() if (clip!=null) clip.stop(); clip=null; public void mousePressed(MouseEvent parm1) public void mouseReleased(MouseEvent parm1) public void mouseEntered(MouseEvent parm1) / TODO: Add your code here public void mouseExited(MouseEvent parm1) / TODO: Add your code here ,6.5 包-1,1、包聲明必須在源程序文件的開始被聲明 2、一個源程序文件,只允許有一個包聲明 / Class Employee of the Finance department for / the ABC company package abc.financedept; public class Employee . 3、包名稱是分層的,由圓點隔開 。包名都用小寫字母表示。 4、通過包命名機制,可以確保類名的唯一性。 cn . com . sina 5、如果源程序省略了包名,則源文件中定義的類默認為無名包的一部分。,6.5 包-2,6、如果程序使用了包 package tom . jiafei ; class People 那么你的目錄結構必須為 tomjiafei; 比如:c:projecttomjiafei,且你的classpath中含有 c:proj

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論