Java基礎(chǔ)_類與對象、封裝

面向?qū)ο笏枷?/h1>

1.1面向?qū)ο笏枷?/h2>

概述

概述Java語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,而面向?qū)ο笏枷胧且环N程序設(shè)計(jì)思想,我們在面向?qū)ο笏枷氲闹敢?,使用Java語言去設(shè)計(jì)、開發(fā)計(jì)算機(jī)程序。這里的對象泛指現(xiàn)實(shí)中一切事物,每種事物都具備自己的屬性和行為。面向?qū)ο笏枷刖褪窃谟?jì)算機(jī)程序設(shè)計(jì)過程中,參照現(xiàn)實(shí)中事物,將事物的屬性特征、行為特征抽象出來,描述成計(jì)算機(jī)事件的設(shè)計(jì)思想。它區(qū)別于面向過程思想,強(qiáng)調(diào)的是通過調(diào)用對象的行為來實(shí)現(xiàn)功能,而不是自己一步一步的去操作實(shí)現(xiàn)。

舉例

洗衣服:面向過程:把衣服脫下來-->找一個盆-->放點(diǎn)洗衣粉-->加點(diǎn)水-->浸泡10分鐘-->揉一揉-->清洗衣服-->擰干-->晾起來

面向?qū)ο螅喊岩路撓聛?->打開全自動洗衣機(jī)-->扔衣服-->按鈕-->晾起來

區(qū)別:

  • 面向過程:強(qiáng)調(diào)步驟。
  • 面向?qū)ο螅簭?qiáng)調(diào)對象,這里的對象就是洗衣機(jī)。

特點(diǎn)

面向?qū)ο笏枷胧且环N更符合我們思考習(xí)慣的思想,它可以將復(fù)雜的事情簡單化,并將我們從執(zhí)行者變成了指揮者。面向?qū)ο蟮恼Z言中,包含了三大基本特征,即封裝、繼承和多態(tài)。

1.2類和對象

環(huán)顧周圍,你會發(fā)現(xiàn)很多對象,比如桌子,椅子,同學(xué),老師等。桌椅屬于辦公用品,師生都是人類。那么什么是類呢?什么是對象呢?

什么是類

  • 類:是一組相關(guān)屬性和行為的集合??梢钥闯墒且活愂挛锏哪0?,使用事物的屬性特征和行為特征來描述該類事物。

現(xiàn)實(shí)中,描述一類事物:

  • 屬性:就是該事物的狀態(tài)信息。
  • 行為:就是該事物能夠做什么。

舉例:小貓。

屬性:名字、體重、年齡、顏色。
行為:走、跑、叫。

什么是對象

  • 對象:是一類事物的具體體現(xiàn)。對象是類的一個實(shí)例(對象并不是找個男朋友),必然具備該類事物的屬性和行為。

現(xiàn)實(shí)中,一類事物的一個實(shí)例:一只小貓。

舉例:一只小貓。

  • 屬性:tom、5kg、2years、yellow。行為:溜墻根走、蹦跶的跑、喵喵叫。

類與對象的關(guān)系

  • 類是對一類事物的描述,是抽象的。
  • 對象是一類事物的實(shí)例,是具體的。
  • 類是對象的模板,對象是類的實(shí)體。

1.3類的定義

事物與類的對比

現(xiàn)實(shí)世界的一類事物:

  • 屬性:事物的狀態(tài)信息。

  • 行為:事物能夠做什么。

Java中用class描述事物也是如此:

成員變量:對應(yīng)事物的屬性

成員方法:對應(yīng)事物的行為

類的定義格式

 public class Class Name{
  //成員變量
  //成員方法
}
  • 定義類:就是定義類的成員,包括成員變量和成員方法。
  • 成員變量:和以前定義變量幾乎是一樣的。只不過位置發(fā)生了改變。在類中,方法外。
  • 成員方法:和以前定義方法幾乎是一樣的。只不過把static去掉,static的作用在面向?qū)ο蠛竺嬲n程中再詳細(xì)講解。

類的定義格式舉例:

  public class Student{
    //成員變量
    String name;
    //姓名
    int age;
    //年齡
    //成員方法
    //學(xué)習(xí)的方法
    public void study(){
    System.out.println("好好學(xué)習(xí),天天向上");
    }
    //吃飯的方法
    public void eat(){
    System.out.println("學(xué)習(xí)餓了要吃飯");

     }
    }

1.類對象的使用

對象使用的格式

類名 對象名 = new 類名();

使用對象訪問類中的成員:

對象名.成員變量;
對象名.成員方法();

對象的使用格式舉例:

public class Test01_Student{
    public static void main(String[]args){
    //創(chuàng)建對象格式:類名對象名=new類名();
    Student s =new Student();
    System.out.println("s:"+s);
    //cn.itcast.Student@100363

    //直接輸出成員變量值
    System.out.println("姓名:"+s.name);//null
    System.out.println("年齡:"+s.age);//0
    System.out.println("‐‐‐‐‐‐‐‐‐‐");

    //給成員變量賦值
    s.name="趙麗穎";
    s.age=18;
    //再次輸出成員變量的值
    System.out.println("姓名:"+s.name);//趙麗穎
    System.out.println("年齡:"+s.age);//18
    System.out.println("‐‐‐‐‐‐‐‐‐‐");

    //調(diào)用成員方法
    s.study();//"好好學(xué)習(xí),天天向上"
    s.eat();//"學(xué)習(xí)餓了要吃飯"

        }
    }

成員變量的默認(rèn)值

數(shù)據(jù)類型 默認(rèn)值
基本類型 整數(shù)(byte,short,int,long) 0
浮點(diǎn)數(shù)(float,double) 0.0
字符(char) '\u0000'
布爾(boolean) false
引用類型 數(shù)組,類,接口 null

1.5類與對象的練習(xí)

  • 定義手機(jī)類:

     public class Phone{
        //成員變量
        String brand;//品牌
        int price;//價格
        String color;//顏色
    
        //成員方法
        //打電話
        public void call(Stringname){
           System.out.println("給"+name+"打電話");
    
           }
    
           //發(fā)短信
           public void send Message(){
               System.out.println("群發(fā)短信");
            }
    
       }
    
  • 定義測試類:

     public class Test02Phone{
        public static void main(String[]args){
         //創(chuàng)建對象
        Phone p=new Phone();
         //輸出成員變量值
         System.out.println("品牌:"+p.brand);//null
         System.out.println("價格:"+p.price);//0
         System.out.println("顏色:"+p.color);//null
         System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
     
    
         //給成員變量賦值
         p.brand="錘子";
         p.price=2999;
         p.color="棕色";
    
         //再次輸出成員變量值
         System.out.println("品牌:"+p.brand);//錘子
         System.out.println("價格:"+p.price);//2999
         System.out.println("顏色:"+p.color);//棕色
         System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
    
         //調(diào)用成員方法
         p.call("紫霞");
         p.sendMessage();
         }
     }
    

封裝

2.1封裝概述

概述面向?qū)ο缶幊陶Z言是對客觀世界的模擬,客觀世界里成員變量都是隱藏在對象內(nèi)部的,外界無法直接操作和修改。封裝可以被認(rèn)為是一個保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被其他類隨意訪問。要訪問該類的數(shù)據(jù),必須通過指定的方式。適當(dāng)?shù)姆庋b可以讓代碼更容易理解與維護(hù),也加強(qiáng)了代碼的安全性。

原則

將屬性隱藏起來,若需要訪問某個屬性,提供公共方法對其訪問。

2.2封裝的步驟

  1. 使用private關(guān)鍵字來修飾成員變量。
  2. 對需要訪問的成員變量,提供對應(yīng)的一對getXxx方法、setXxx方法。

2.3封裝的操作-- private 關(guān)鍵字

private的含義

  1. private是一個權(quán)限修飾符,代表最小權(quán)限。
  2. 可以修飾成員變量和成員方法。
  3. 被private修飾后的成員變量和成員方法,只在本類中才能訪問。

private的使用格式

private 數(shù)據(jù)類型 變量名;

1.使用private修飾成員變量,代碼如下:

 public class Student{
    private String name;
    private int age;
}

2.提供getXxx方法/setXxx方法,可以訪問成員變量,代碼如下:

  public class Student{
    private String name;
    private int age;

    public void setName(Stringn){
        name = n;
     }

    public String getName(){
        return name;
    }

    public void setAge(inta){
        age = a;
    }

    public int getAge(){
        return age;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容