類和對象:
理解面向對象,爲什麼我們要面向對象,對象是真是世界中的物體在人腦中的映像,在實際生活中,我們每時每刻都在於他打交道,想筆,自行車,乘坐的公共汽車,這些對象是能看的見,摸得着,實際存在的東西,我們稱之爲實體,但是在邏輯關係上的反應,鋼筆與墨水的關係,人與自行車的關係,我們稱之爲邏輯對象。
對象的基本構成,現實中人是一個實體對象,分析實體對象構成,這些實體對象都有自己的狀態描述,稱之爲屬性,屬性是靜態的這些屬性石用來決定了對象的具體表現形式,,對象同事具有靜態屬性和動態屬性。抽象是在思想上把各種對象或現象之間的共同的本質屬性抽取出來而捨去個別本質屬性的思維方法,也就是把一系列相同或類似的實體對象特點抽取出來,採用一個統一的表達方式,這就是抽象。
JAVA中的類,就是對具體相識的一類書屋的抽象,類封裝了一類對象的屬性和方法。
JAVA中的對象,java中的的對象是在java中的一個類的實例,也稱作實例對象,實例就是實際例子,
類也被認爲一個模版,一個對象就是每次使用時候創建的一個類的實際的結果。
JAVA 類的基本構成
包:包含類代碼的文件組織起來,易於查找和使用
包不止是包含和接口,還能夠包含其它包,形成層次的包空間。
有助於避免命名衝突,易於管理
控制代碼訪問權限
jdk 中常見的包
java.lang 包含一些java語言的核心類,包含構成java設計基礎的類,再次包中,定義的一個最重要的一個類是objecet,代表類的層次的根,
java.awt 包含了構成抽象窗口工作集的多個類,這些類被用來構建和管理應用程序的圖形用戶界面。
java.swing 完全版的圖形用戶界面(GUI)解決方案,提供了很多完備的組件,也可以對複雜的桌面系統構建。
java.net 包含執行與網絡相關的操作的類。
java.net 包含執行與網絡相關的操作的類。
java.io 包含提供多種輸入輸出功能的類。
java.unit 包含一些實用的工具類,如定義系統的特徵、使用與日期日曆相關的方法。還有重要的集合框架。
public class Rectangle{
public Rectangle(int w ,int h){
width = w;
height = h;
}
public Rectangle(){
}
}
形式參數和實際參數
形參:就是形式參數的意思
實參:就是實際參數的意思
形參和實參的類型必須一致,或者要符合隱含的轉換規則。形參類型不是引用類型時下調用該方法,是按照值傳遞的。在該方法運行時,形參和實參是不同的變量,他們在內存中位於不同的位置,形參將實參的值複製在一份,在該方法運行結束時候形參被釋放,而實參的內容不會改變。形參的類型時引用類型在調用該方法時,是按照引用傳遞的。運行時,傳給方法時實參的地址,在方法體內部使用也是實參的地址,即使使用時就是實參本身對應的內存空間。所有在函數體內部可以改變實參的值。
如何使用一個類
1:new 關鍵字
MyData myBrith
myBrith = new MyData()
第一個語句聲明僅爲了引用分配了足夠的空間,而第二個語句則通過調用對象的構造方法爲
三個整數分配了空間,對象的賦值使變量myBirth從新正確地引用新的對象,這兩個操作被完成後,MyData對象的內容則可通過 myBirth 進行訪問。
myBirth > 棧內存 》》》》》》堆內存 day
month
year
2、使用對象中的屬性的和方法
myBirth.day = 26;
3、this關鍵字 this.day = this.day + 1;
如果發生重名的話將調用最近的 變量。
(四)
引用類型:
public class MyData{
private int day = 8;
private int month = 8;
private int year = 2008 ;
public MyDate (int day,int month,int year) ;
public void print (){}
}
public class TestMyDate{
public static void main(String args[]){
MyDate today = new MyDate(23,7,2008);
}
}
按值傳遞還是按照引用傳遞
public void main (string [] args){
TempTest t = new TempTest();
int a = 3;
t.test1(a);
system.out.println("a"+a);
按照引用傳遞
public class TempTest{
private void test1 (A a){
a.age = 20;
system.out.println(" test1"+a.age);
}
public static void main(String[] args){
TempTest t = new TempTest();
A a = new A();
a.age = 10;
t.test1(a);
system.out.println("main中的age="+a.age);
}
}
class A {
public int age = 0;
}
}