Java基礎---物件導向(1)

來源:互聯網
上載者:User

標籤:名稱   str   []   sys   操作   概述   堆記憶體   java基礎   stat   


Java基礎——物件導向


1.什麼是物件導向

物件導向是基於面向過程的編程思想。

(1).面向過程:
面向過程強調的是每一個功能的步驟,強調的是如何?的步驟。

(2).物件導向:
物件導向強調的是對象,然後由對象去掉用功能,強調的是做這一個事情的結果。


2.物件導向的思想特點

(1).是一種更加符合我們思想習慣的邏輯。
(2).可以將複雜的事情簡單化
(3).將我們從執行者變成了指揮者。


3.物件導向舉例
我們一洗衣服為例:

面向過程的實施步驟:
找出髒衣服--->放入盆中---->放入洗衣粉--->泡一會--->搓衣服,把髒的地方搓乾淨--->擰乾---->晾起來

物件導向的實施過程:
找出髒衣服--->放入洗衣機中---->加水--->擰乾---->晾起來

我們可以看出洗衣機就是我們洗衣服這一個過程中的一個對象,這個對象具有面向過程中一些具體步驟的功能。


4.物件導向的開發、設計、特徵

(1).物件導向開發
就是不斷的建立對象,使用對象,指揮對象做事情。

(2).物件導向設計
其實就是在管理和維護對象之間的關係。

(3).物件導向特徵
封裝
繼承
多態


5.類和對象的概述

(1).現實世界中是如何描述一個事務呢?
如描述學生:
基本屬性:姓名,年齡,性別,身高,體重
基本行為:吃飯,睡覺,學習,玩耍,談戀愛


(2).程式中描述一個事務
在java語言中,最基本的描述單位是類,我們用類和現實世界中的事物對應起關係來;
就是學生類,基本屬性使用的是該類的成員變數,基本行為就是用該類的成員方法。


(3).代碼實現

學生類定義:

現實中學生事務:
基本屬性:姓名,年齡,性別,身高,體重
基本行為:吃飯,睡覺,學習,玩耍,談戀愛
程式中表述:
成員變數:姓名,年齡,性別,身高,體重
成員方法:吃飯,睡覺,學習,玩耍,談戀愛

代碼:
public class Student {
//姓名
private String name;
//性別
private String sex;
//年齡
private int age;
//身高
private double hight;
//體重
private double weight;


//定義吃飯方法
public void eat(String name) {
System.out.println(name+":這是吃飯的方法");
}

//定義睡覺方法
public void sleep(String name){
System.out.println(name+":這是睡覺的方法");
}

//定義玩耍的方法
public void play(String name){
System.out.println(name+":這是玩耍的方法");
}

//定義學習 的方法
public void study(String name){
System.out.println(name+":這是學習的方法");
}
}

 


(4).對象
A:什麼是對象
對象就是一個實際具體的可以用的類,也就是說我們定義了一個學生對象,但是僅僅只是定義了一個虛構的,我們要把他變為現實的可用的,如定義一個小明學生對象,小明就是一個具體的,可以使用的
而小明具備這一個學生的所有特徵,有姓名,年齡,性別,身高,體重,同時也能夠:吃飯,睡覺,學習,玩耍,談戀愛。

B:如何建立一個對象
類名 對象名=new 類名();

C:對象是如何使用類的:
public static void main(String[] args) {
Student st =new Student();
st.age=20;
st.hight=1.75;
st.sex="男";
st.weight=50;
st.name="小明";
st.eat("小明");
st.sleep("小明");
st.play("小明");
st.study("小明");
System.out.println(st.name+"--"+st.age+"--"+st.hight+"--"+st.sex+"--"+st.weight);
}

//輸出結果
小明:這是吃飯的方法
小明:這是睡覺的方法
小明:這是玩耍的方法
小明:這是學習的方法
小明--20--1.75--男--50.0


6.成員變數和局部變數

(1).為什麼會出現倆種不同的變數
我們在實際的使用中,我們需要一個變數的作用範圍和使用的時候的具體操作不一樣,所以才出現倆種不同的變數。


(2).區別

A:在類中的位置不同
成員變數:在方法外
局部變數:在方法定義中或者是方法申明上。

B:在記憶體中的位置不同
成員變數:在堆記憶體中
局部變數:在棧記憶體中

C:生命週期不一樣
成員變數:隨著對象的建立而存在,隨著對象的消失而消失
局部變數:隨著方法的調用而調用,隨著方法調用完畢而消失

D:初始化值不一樣
成員變數:有預設的初始化值
局部變數:沒有預設的初始化值,必須要定義,賦值,然後才可以使用。

注意事項:
局部變數名稱可和成員變數名稱一樣,在方法中使用的時候,採用的是就近原則(使用的時候哪一種變數最近就是使用那一種變數)。


(3).代碼實現
public class Test {
//定義成員變數
int a=10;

public static void show(int a){
System.out.println("就近原則測試:"+a);
}

public void showValues(){
//定義局部變數
int num=120;
//局部變數沒有初始化不能使用,報錯提示
//int num1;
//System.out.println("局部變數使用測試:"+num1);
System.out.println("局部變數使用測試:"+num);
}

//測試
public static void main(String[] args) {
Test ts =new Test();
ts.showValues();
show(20);
}
}

//輸出結果
局部變數使用測試:120
就近原則測試:20

 

Java基礎---物件導向(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.