第六章:物件導向
@物件:(什麼是物件) 一切客觀(不一定看的見摸的著)存在的事物都是物件,
#:物件的組成部分:
1,屬性
2,方法 物件的屬性可以又是乙個物件
計算機中的物件:一塊連續的儲存空間
#類是什麼:
1.類是大量物件共性的抽象
2,類是客觀事物在人腦中的主觀反映
3,類是建立物件的模板(類是主觀存在,物件是客觀存在的)完成了模板才能有物件
#定義類:
class +
類名{}
#建立物件的兩種方法:
1.student s1=new student() 2. student s1; s1=new student();
#.oop:object oriented programming 物件導向程式設計
xp:extreme programm 極限程式設計
#例項變數;定義在類中,實際上屬於物件的
1,不用先賦值,存在預設值,
2,作用範圍不用,至少在本類內有效,
3,例項變數可以和區域性變數命名衝突區域性變數優先使用
#區域性變數;特點:
1,必須寫在方法中
2,必須先賦值再使用,沒有預設值,
3,作用範圍在乙個**塊中
#方法: 方法的格式: 修飾符 返回值型別 方法名(引數
1,引數
2) 異常
(這個可以省)方法要在類的內部定義;
#.點運算子
.是屬於的意思,
student.add(2) 方法
#,如果有多個函式與你傳遞的引數匹配,那麼最精確的函式會被呼叫
#。構造方法的過載:特點:
1,構造方法不能被手工呼叫,被自動呼叫
2,構造方法在物件構造時被啟動呼叫一次,而且只會被呼叫一次
#建立物件:
1,記憶體中分配空間,指定預設值,
2,初始化屬性,
3,呼叫建構函式
#如果在乙個類中沒有定義建構函式,系統會預設提供乙個公開的無參的空構造方法
#用構造方法給例項變數賦值
class student
public student(int age) student s=new student(10) 乙個物件建立過程例項變數會發生三次變化,我們能改變的是第三次 ,例項變數存在預設值
@物件和引用
#引用的概念
student s; s=new student(); 1
,物件型別的變數就叫做引用
2,引用儲存的是物件記憶體空間的首位址
int a=10;
int b=a;
b++;
system.out.println(a) //a還是10,
b為11
基本資料型別在記憶體中存的都是資料,沒有位址
經典:student s1=new student();
student s2=s1; //相當於指標
s1指向
student
記憶體的首位址,
s1把首位址賦給了s2,
s2和s1同時指向了同乙個物件同一塊記憶體
s2.age=21;
system.out.println(s1.age)
#程式中傳值問題
(1)int a=20;
m1(a);
system.out.println(a)//列印出
a=10;
等於把a
的值複製給b ,
a值不變
public static void m1(int b){
b++(2
)student s1=new student()
m2(s1);
system.out.println(s1.age);
pulbic void m2(student stu){
stu.age++
class student{//列印出
21 因為把首位址傳了過去,直接操作了物件屬性
int age=20;
還有種情況是 轉殖: 拷貝乙份和源物件狀態一致的物件
student student=new student();
student.age=5;
student student2=(student)student.clone(); //返回值是
object物件
student2.age=10;
system.out.println(student.age);
class student implements cloneable{
int age=2;
實現介面:
protected object clone() throws
return super.clone();
轉殖的分類:1
,深度轉殖 :使用場合,如果我們想把乙個物件的狀態傳遞到方法中,而不想讓方法影響到傳入物件的狀態,那麼就可以考慮轉殖
2,淺度轉殖
使用方法:實現 cloneable
介面,重寫
clone
方法;
第六章 物件導向的程式設計
ecmascipt有兩種屬性 資料屬性和訪問屬性。資料屬性 資料屬性有四個特性 configurable 表示能否通過delete刪除屬性從而重新定義屬性 enumerable 表示能否通過for in迴圈返回屬性 writeable 表示能否修改屬性的值 value 屬性的值 要修改屬性預設的特性...
第六章筆記
頂層const與底層const的區別 頂層const是指標物件本身是乙個常量,而底層const是指標所指的物件是乙個常量,理解起來就相當於前者是直接,後者是間接。宣告函式可以多次,但是每個形參只能用實參預設初始化一次,即後續宣告只可以為未預設初始化的形參新增預設實參,而且其形參右側的所有形參必須都有...
java第六章類與物件
類修飾符的含義 public 將乙個類宣告為公共類,它可以被任何物件訪問,乙個程式的主類必須為公共類 abstract 將乙個類宣告為抽象類,沒有實現的方法,需要子類提供方法的實現.final 將乙個類宣告為最終類即非繼承類,表示它不能被其他類所繼承 friendly 友元型別,預設的修飾符,只有在...