天天看點

JAVA狗叫源代碼_從頭認識java-1.1 程式設計語言抽象過程以及java的基礎特性

這一章節我們來簡單的聊聊對象抽象的過程。

1.所有語言都提供抽象機制。

例如:a=1(下面都是舉例子,裡面所提及的内容有可能是錯誤的,因為筆者沒學過機器碼和彙編)

在機器碼當中:1000100111011000

在彙編當中:mov a,1

在C語言當中:a=1

在java當中:

class Test(){

a=1;

}

從上面的不同的表示裡面可以發現,語言都是在不斷的抽象,從最開始的0和1,一直到java的建立一個對象然後在對象裡面指派,就是一個不斷抽像的過程。

同時,也是程式設計語言努力把問題空間(實際業務)與解空間(計算機)聯系起來的表現。

解釋:

1.在機器碼時代,實際業務跟計算機直接的連接配接是非常困難的,大家可以看到a=1這麼簡單的操作,就是一大段0和1,誰記得住,當然,記得住的都是強人。

2.在彙編時代,程式設計語言進步了,做出了第一次的抽象,把0和1抽象成某些句子,可以利用簡單的句子來描述a=1,但是由于抽象程度有限,是以,程式設計的複雜程度還是比較高

3.到了c語言時代,可以說抽象進行了一次飛躍,C語言基本能夠處理日常問題,而且性能非常卓越

4.到了java時代,提出了oop,使得實際業務的描述跟計算機的解決方案的描述已經比較吻合

總結:

4個時代的變遷,性能越來越低,但是可讀性越來越高,時至今日,除非是高并發網際網路企業,一般來說性能不是最大問題,瓶頸出現在人上面,是以,現在可讀性反而顯得更加重要。

2.java的基本特性

1)萬物皆對象。

對象是一個奇特的變量,它既可以存儲資料,也可以執行操作,我們可以抽象問題的構件來組成程式。

例如:名字是“jack”的狗會叫的。

class Dog(){

private String name;

private String id;

public void bark(){

}

}我們建立狗的對象,然後這個狗有一個屬性“名字”,而且它會叫,是以有一個方法“bark”

在對象狗裡面,既可以存儲狗的名字,也可以執行狗叫的方法。

2)程式是對象的集合,它們通過發送資訊來告訴彼此需要做什麼(說白了,就是調用對象的方法)。

package com.ray.ch01;

public class Test {

public static void main(String[] args) {

Dog dog = new Dog();

dog.setName("jack");

dog.bark();

}

}

class Dog {

private String name;

public void bark() {

System.out.println(name + " is barking");

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

在上面的程式中dog.bark()就是調用了Dog對象的bark方法。

3)每個對象都有由其他對象組成的存儲。

package com.ray.ch01;

import java.util.ArrayList;

public class GroupOfDogs {

private ArrayList catList;

private void initCatList() {

for (int i = 0; i < 5; i++) {

Cat cat = new Cat();

cat.setName("rose" + i);

catList.add(cat);

}

}

public static void main(String[] args) {

new GroupOfDogs().initCatList();

}

}

class Cat {

private String name;

public void bark() {

System.out.println(name + " is barking");

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

從上面的代碼可以看出,特别是private ArrayList catList,這一個存儲就是通過其他對象來完成的。

4)每個對象都有類型

package com.ray.ch01;

public class Bird {

public static void main(String[] args) {

Bird bird = new Bird();

}

}

上面的代碼,bird是一個對象,它的類型是Bird,同時bird這個對象,也是Bird這個類型所具象出來的一個執行個體。

5)某一特定類型的對象,都可以接收同樣的消息。

package com.ray.ch01;

public class Bird {

private void say() {

}

public static void main(String[] args) {

Bird bird1 = new Bird();

bird1.say();

Bird bird2 = new Bird();

bird2.say();

}

}

上面的代碼建立兩個不同的對象bird1和bird2,他們是同一個類型Bird,是以,它們可以接收同樣的資訊,也就是我需要調用Bird這個類型裡面的say方法時,bird1和bird2都可以調用。

最後,對象是具有獨立的存儲、方法、辨別,在jvm裡面,每一個對象都是獨立的,具有唯一id。

這一章節簡單介紹了程式設計語言抽象過程,以及介紹了java的五個基礎特性。

這一章節就到這裡,謝謝。

-----------------------------------

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。