程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 類和對象,對象

類和對象,對象

編輯:JAVA綜合教程

類和對象,對象


面向對象和面向過程詳解

我們常說高級語言分為:面向過程和面向對象。

面向過程:c

面向對象:c++, Java

共同點:面向過程和面向對象都是解決實際問題的一種具體思路。

區別:

大家描述一下如下兩件事兒:

如何開汽車(事物比較簡單,可以用線性的思維去解決)

面向過程:1.采離合2. 掛檔3.踩油門,放離合4.開了

面向對象:

駕駛員

2.  汽車

駕駛員開汽車!Motor.start();

如何造汽車(事物比較復雜,使用簡單的線性思維無法解決)

面向過程:1. 造車輪 2. 造發動機 3. 造車皮4. 擋風玻璃 …

面向對象:

車輪

買橡膠

到馬來西亞

買飛機票

找到橡膠廠

掏錢買

用船將橡膠運到國內

造磨具

將橡膠放入磨具

出車輪

發動機

….

車殼

….

座椅

擋風玻璃

….

將上面的造出的東東,組裝,汽車造出!

對於描述復雜的事物,為了從宏觀上把握、從整體上合理分析,我們需要使用面向對象的思路來分析整個系統。但是,具體到微觀操作,可能需要面向過程的思路去處理。

解決簡單問題可以使用面向過程解決,解決復雜問題:宏觀上使用面向對象把握,細節處理上仍然使用面向過程

面向對象思考方式:遇到復雜問題,先從問題中找到名詞,然後確立這些名詞哪些可以作為類,再根據問題需求確定類的屬性和方法,確定類之間的關系

一 對象和類的概念

java中有一句名言,萬事萬物皆對象,對象指的是一個具體的事物

比如一個叫小明的人就是一個對象,而類是對對象的抽象

人類就是一個類,小明就是人類的一個實例也就是對象,人類中可能有其他人也就是其他實例,小李,小孫等等

把車作一個類的話,對象就是 我家的別克車,對象也可以是你家的瑪莎拉蒂車,對象就是具體的事物,而類就是對象的集合,所有對象的統稱

類可以看做是一個模版,或者圖紙,系統根據類的定義來造出對象

 比如車類,模板就是有四個輪子,發動機,座位,可以跑

車類的一個對象可以是你家的車,就有四個輪子,發動機,也能跑,也能帶著你跑,車是你家的車,是一個實在的例子

類的定義

在java中類的定義方式是  class 類名

1 class Car{
2     
3 }

比如這個Car類

上面的Car類一片空白,可以定義屬性,有輪子,發動機,座位 可以定義跑的方法

class Car{
      String name;
      int age;
      String color;
      String zuowei; 
    void run(){
      System.out.println("我是汽車我能跑,還能帶人跑");
    }  }

上面定義了屬性,有車的名字,車齡,顏色,座位,還有個跑的方法

創建了類了,就該創建對象了,通過車類得到你家的車

類名 對象名 = new 類名()

class Car{
      String name;
      int age;
      String color;
      String zuowei; 
    void run(){
      System.out.println("我是汽車我能跑,還能帶人跑");
    }
     public static void main(String[] args){
          Car car = new Car();
          car.name="極品寶馬"
          car.age=3;
          car.color="黑色";
          car.zuowei="真皮";
          car.run();
       }   
}        

你家的車改名叫極品寶馬,已經3年的歷史了,黑色,被你改裝成了真皮沙發,還在跑

一般類中除了屬性和方法還包含構造器,也就是構造函數,可以在創建對象的時候直接給屬性賦值,相當於,直接給對象做個自我介紹

class Car{
      String name;
      int age;
      String color;
      String zuowei; 
      public Car(String name,int age,String color,String zuowei){
            this.name=name;
            this.age=age;
            this.color=color;
            this.zuowei=zuowei;
      }  
    void run(){
      System.out.println("我是汽車我能跑,還能帶人跑");
    }
     public static void main(String[] args){
          Car car = new Car("極品寶馬",3,"黑色","真皮");
                   car.run();
       }   
}        

這和上面的效果是一樣的,如果在定義類的時候不創建構造器,系統會默認定義一個無參構造器

類中的屬性:[修飾符]  屬性類型  屬性名 = [默認值] 

可以直接賦初始值,也可以不賦值,系統會默認初始值

屬性可以是基本數據類型,也可以是引用數據類型 

類中的方法:定義該類的功能,比如吃飯,睡覺,打架這些動態的行為,可以這麼理解,屬性是名詞,方法是動詞,方法展現的是該類能干什麼事,有什麼行為

方法定義格式:

[修飾符]  方法返回值類型  方法名(形參列表) {

// n條語句

}

類和對象實例:

定義一個“點”(Point)類用來表示三維空間中的點(有三個坐標)。要求如下:

可以生成具有特定坐標的點對象。

提供可以設置三個坐標的方法。

提供可以計算該“點”距另外點距離平方的方法。

class Point {
    double x, y, z;
    
    public Point(double _x, double _y, double _z) {
        x = _x;
        y = _y;
        z = _z;
    }
    
    public double  getDistance(Point p) {//傳參數,參數就是Point的一個對象
      //計算兩點之間的距離 return Math.sqrt((x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z)); } } class Test { public static void main(String[] args) { Point p = new Point(5.0, 6.0, 7.8); Point origin = new Point(0.0, 0.0, 0.0);
     //通過調用方法得到距離 System.out.println(p.getDistance(origin)); } }

結果

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved