javase基础复习攻略《三》
編程語言的發展:
機器語言——直接由計算機的指令組成,指令、地址、數據都是以"0"和"1"的符號串組成,可以被計算機直接執行。
匯編語言——用容易理解和記憶的符號表示指令、數據和寄存器等,抽象層次很低,程序員需要考慮大量的機器細節。
高級語言——屏蔽了機器細節,提高了語言的抽象層次,更加接近于自然語言,60年代出現的結構化編程設計語言提出了結構化數據和語句,數據和過程抽象等概念。
面向對象的語言——與以往的各種語言不同,他的設計出發點就是為了更能直接的描述問題域中客觀存在的事物。
對于JAVA大家都知道,它是一種面向對象的程序設計思想,那面向對象和面向過程有什么區別呢?舉一個例子,比如我要到湖南,面向過程的設計思路:首先我們制定好路線,我要啟動汽車,我要掛上檔,我要踩下油門,我要握住方向盤,我要按著路線前進。面向對象的設計思路:選擇一種交通工具,具體如何到呢?交給交通工具去處理。交通工具制定行駛路線,至此我們就可以上路了。說了這么多,大家一定還有點霧里看花的感覺,面向對象突出類的概念,類包含屬性和方法。本篇我們就一起回顧一下JAVA的面向對象設計。
1、對象和類的概念:
對象——用計算機語言對問題域中事物的描述,對象通過屬性和方法,來分別表示事物所具有靜態屬性和動態屬性。
類——類是用來描述同一類型的對象的一種抽象的概念,類中定義了這一類對象所具有的靜態和動態屬性。
類可以看做是對象的一種抽象,對象則是類的一個具體實例。
2、類和對象的創建和使用:(代碼實例)
類:Animail.java
//類的創建 public class Animail {//全局變量private int age;private String name;//添加方法public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}//添加方法public void Print(){static int money = 3000;//成員變量,作用域為該方法域,必須先賦值,后使用System.out.println("一般方法執行了");}/** 構造方法沒有返回值* 當沒有添加構造方法時,系統默認為類添加一個無參構造方法* 當添加一個有參構造方法后,系統將不再為該類添加無參構造方法*///無參構造方法public Animail(){System.out.println("無參構造方法執行了");}//有參構造方法public Animail(int age){System.out.println("有參構造方法執行了 age="+age);} }對象:test.java
public class Test {/*** @param 類和對象*/public static void main(String[] args) {Animail animail = new Animail();//對象的創建,執行該類的無參構造方法Animail animail2 = new Animail(1);//對象的創建,執行該類的有參構造方法//方法的執行,通過對象名點方法名執行animail.setAge(10);animail.setName("小貓");System.out.println("name="+animail.getName()+" age="+animail.getAge());animail.Print();} }3、this、static、package、import、訪問控制
this:當前的,當對類中全局變量進行修改時,當參數名與全局變量名一致時,使用this關鍵字,對當前對象的該屬性進行修改。
static:全局的,用static聲明的成員變量為靜態成員變量,它為該類的公用變量,在第一次使用時進行初始化,對于該類的所有多象,static成員變量只有一份。
package:包,JAVA為了防止用戶命名重復時,導致出錯,添加了包的概念,包名的命名一般為公司域名的倒敘。
import:引用,當你需要使用另外一個包內的方法時,就需要使用import關鍵字,將該包引入進來。
JAVA的訪問控制分為:private(私有的)、默認、protected(不公開的)、public(公開的)
4、繼承:
關鍵字:extends,繼承為何物?比如說,你爸是富豪,你得到了他擁有的資金,這就是繼承,JAVA提供的繼承為單繼承,也就是一個類只能有一個父類。
代碼:父類:
public class Phone {int money;public Phone(){System.out.println("父類的構造方法");}public void sendEMS(){System.out.println("父類發短信方法");} }子類:
public class cellPhone extends Phone {String color;public cellPhone(){System.out.println("子類構造方法");}//子類可以重寫父類的方法public void sendEMS(){System.out.println("子類發短信方法");} }測試代碼:
public class test {public static void main(String [] args) {//首先執行父類的構造方法,然后執行子類的構造方法Phone phone = new cellPhone();//向上轉型//執行子類重寫的方法 phone.sendEMS();} }5、重寫:
方法重寫即子類對象可以根據需要對父類方法進行重寫定義。
6、重載:
方法重載是指一個類中可以定義多個具有相同的名字,但參數不同的多個方法,調用時會根據參數的不同調用不同的方法。
實例代碼:
方法類:
public class Sum {public void sum(int a, int b){System.out.println("方法一:"+a+"+"+b+"="+(a+b));}public void sum(int a, double b){System.out.println("方法二:"+a+"+"+b+"="+(a+b));}public void sum(double a, int b){System.out.println("方法三:"+a+"+"+b+"="+(a+b));}public void sum(double a, double b){System.out.println("方法四:"+a+"+"+b+"="+(a+b));}}測試類:
public class test {/*** @param 方法重載*/public static void main(String[] args) {Sum sun = new Sum();sun.sum(1, 1);sun.sum(1, 1.1);sun.sum(1.1, 1);sun.sum(1.1, 1.1);} }? ?6、final、object:
final:靜態的,我們學習C語言時,通過#define count 60,來定義常量,JAVA同樣提供了常量的定義方法,就是final關鍵字,我們只需要在定義變量時添加一個final聲明,它就變成了一個常量,常量只能被賦值一次。
object類是JAVA所有類的父類。
? ?7、多態:
定義:a、存在繼承;b、子類對象對父類方法有重寫;c、父類引用指向子類對象
對于父類引用指向子類對象,需要注意的是,對象轉型時,應使用instanceof關鍵字
代碼實例:
public class Test {/*** @param 多態*/public static void main(String[] args) {Animail animal = new Dog();//向上轉型 // Dog dog = (Dog)animal;//向下轉型時,添加強制類型轉換 // Cat cat = (Cat)animal;//向下轉型時容易出現這種錯誤//為了防止出現上述錯誤,我們使用instanceof關鍵字if(animal instanceof Dog){Dog dog = (Dog)animal;}else{System.out.println("animal不是狗");}if(animal instanceof Cat){Cat cat = (Cat)animal;}else{System.out.println("animal不是貓");}} }? ?8、抽象類:
被abstract關鍵字修飾的類,我們稱之為抽象類,被absteract修飾的方法為抽象方法。含有抽象方法的類,必須為抽象類,抽象類必須被繼承,抽象方法必須被重寫。抽象類不能被實例化,抽象方法只需聲明,不需要實現。
9、接口:
接口(interface)是抽象方法和常量值的定義的集合,從本質上講,接口是一種特殊的抽象類。
代碼實例:
接口:
public interface inter {double PI = 3.14; public void start();public void run();public void stop(); }類:
public class test implements inter {public void run() {}public void start() {}public void stop() {}}對于JAVASE面向對象的知識就為大家總到此,由于文字描述的局限,如果有不懂的地方可以留言。
轉載于:https://www.cnblogs.com/AndroidJotting/p/4334803.html
總結
以上是生活随笔為你收集整理的javase基础复习攻略《三》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端设置点击屏幕闪烁的问题
- 下一篇: 右键助手1.0正式版