標籤:名稱 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)