1. 程式人生 > >JAVA學習筆記之面向物件(一)

JAVA學習筆記之面向物件(一)

        作為初入開發的萌新,我根據黑馬程式設計師的教學視訊和課件整理總結,記錄下自己的JAVA學習,方便鞏固和交流。每篇筆記首先回顧知識點,然後貼上程式碼和執行結果,最後進行小結。若有不正之處或者有疑問,歡迎指出,望與各位共同進步。

1.類的定義

修飾符    class    類名{

成員變數

成員函式 

}

2.物件的建立

1)直接建立

類名 變數名=new 建構函式名(形式引數列表)

2)先宣告變數,再賦值引用

變數名=物件變數名

3.成員函式的定義格式:

修飾符   返回值型別   函式名(形式引數列表){

        函式體(需要被封裝起來的功能程式碼);

}

修飾符訪問
本類同包子類其他
private允許
預設允許允許
protected允許允許允許
public允許允許允許允許

4.物件成員的呼叫

1)成員變數

物件名.屬性名

2)成員函式

物件名.方法名(引數列表)

5.區域性變數和全域性變數

成員變數:  定義在類中變數,在整個類內有效。
區域性變數:  定義在方法中變數,只在其宣告的方法內有效。

6.匿名物件

1)匿名物件:沒有對應變數名引用的實體

2)應用:

  • 物件對方法只調用一次時簡化程式碼
  • 匿名函式作為實參傳入其他函式。

7.記憶體分析

1)棧

棧的本質是一張線性表。JAVA中棧分為兩種,JVM執行使用的全域性棧和執行程式碼的方法時生成的方法棧。當程式呼叫方法時,系統都會為該方法建立一個方法棧,其所在方法中宣告的變數就存放於方法棧中,方法結束就釋放棧。比堆存取速度更快,但棧中的資料大小和生存期必須確定,缺乏靈活性。

簡單地說:用於存放區域性變數名(物件地址)。

2)堆

堆的資料結構是一種陣列物件,是一種棵完全二叉樹,用於存放物件實體。

3)池

有靜態常量池和執行時常量池

  • 靜態常量池:class檔案中的常量池,不僅僅包含字串(數字)字面量,還包含類、方法的資訊。靜態變數只儲存一份,進行共享。
  • 執行時常量池:jvm虛擬機器在完成類裝載操作後,將class檔案中的常量池載入到記憶體中,並儲存在方法區中,我們常說的常量池,就是指方法區中的執行時常量池。

8.程式碼

完成修理汽車的功能

package day5;
/*
 	需求分析:
 	汽車有輪子,有顏色,有名字,有執行的方法
 	修理廠有地址,有名字,有修理的方法
 * */
class Car{
	String name;
	String color;
	int state;
	public Car(String name,String color){
		this.name=name;
		this.color=color;
		state=3;
	}
	public void run(){
		state--;
	}
}
class CarFactory{
	String name="大風修理廠";
	public void repairing(Car car){
		car.state=3;
		System.out.println("修理成功!");
	}
}

public class Repair {
	public static void main(String[] args){
		Car c=new Car("大黃蜂","yellow");
		CarFactory factory=new CarFactory();
		for (int i=0;i<10;i++){
			if (c.state==0){
				System.out.println("汽車壞了,請送往修理廠修理!");
				factory.repairing(c);
			}
			else{
				c.run();
			}
		}
	}
}

執行結果

汽車壞了,請送往修理廠修理!
修理成功!
汽車壞了,請送往修理廠修理!
修理成功!

9.總結

對於堆疊池的理解還是不夠清楚,在後面的學習中需要進行更深入的瞭解。

相關推薦

JAVA學習筆記面向物件

        作為初入開發的萌新,我根據黑馬程式設計師的教學視訊和課件整理總結,記錄下自己的JAVA學習,方便鞏固和交流。每篇筆記首先回顧知識點,然後貼上程式碼和執行結果,最後進行小結。若有不正之處或者有疑問,歡迎指出,望與各位共同進步。1.類的定義修飾符    class

Java學習心得面向物件

一、面向過程的思想和麵向物件的思想  面向物件和麵向過程的思想有著本質上的區別, 作為面向物件的思維來說,當你拿到一個問題時,你分析這個問題不再是第一步先做什麼,第二步再做什麼,這是面向過程的思維,你應該分析這個問題裡面有哪些類和物件,這是第一點,然後再分析這些類和物件應

Javascript高階程式設計--讀書筆記面向物件

哈哈哈萬物皆物件,終於到了js的面向物件篇。 一、屬性型別 (1)資料屬性 資料屬性包含一個數據值的位置,在這個位置可以寫入和讀取數值,資料屬性有四個描述器行為的特性 [[Configurable]]:表示能否通過 delete 刪除屬性而重新定義屬性,預設值是ture [[Enumerab

Java學習心得面向物件

 引用型別和基本型別有著巨大的區別,當宣告一個int  i=0時,系統會馬上給這個i分配一個記憶體空間(在棧記憶體裡面分配一小塊區域用來裝數字0),裡面裝著一個值為0,以後使用i這個名字馬上就可以訪問這個記憶體空間裡面的值,這就是基本資料型別,所以基礎型別就只佔一塊記憶體。基礎型別之外的型別全都叫引用型別,

matlab學習筆記常用命令

plot 我們 all 查看 學習 ear tla clear 但是 一.清除命令。   1.clear all;%清除所有變量,通常在matlab的工作區;另外斷點也會被清除掉   2.close all;%關閉所有窗口(除了編輯器窗口、命令窗口、幫助窗口)   3.cl

java學習筆記基礎語法

讓其 實例 高效率 使用 個數 存儲 記錄 棧內存 數組 1.數組: 概念:同一種類型數據的集合,其實,數組就是一個容器 優點:可以方便的對其進行操作,編號從0開始,方便操作這些元素。 2,數組的格式 元素類型[]數組名=new 元素類型[數組元素個

linux學習筆記shell程式設計

shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則

linux學習筆記流程控制if分支語句

流程控制 if語句 單分支if語句 程式 fi``` ```if [ 判斷 ] then 程式 fi``` 例項程式碼指令碼: #!/bin/bash

linux學習筆記shell程式設計正則表示式與字元處理

shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則表示式常用的字元(注意區別於萬用字元裡面的符號)#### -*

Django學習筆記環境搭建

           Django是一個高階的Python Web開發框架,它鼓勵快速開發,和實用的設計。它採用了MTV的設計模式,並且它由經驗豐富的開發人員來構建, 可以解決Web開發的諸多問題,因此也被稱為全棧Web開發框架。它是開源的,直接

Python學習筆記python基礎

一、契機 之前一直聽說Python的功能各種強大,最主要的是還可以利用他來從網上抓取一些資源 ,所以我覺的這一塊還是比較有意思的。因此,本著多學一點是一點的心態,開始著手一些python的學習。通過部落格來記載自己的學習進度並和各位網友分享自己的學習心得 二

uboot學習筆記原始碼解讀

1、BootLoader介紹 對於計算機系統來說,從開機上電到作業系統啟動需要一個引導過程。嵌入式Linux系統同樣離不開載入程式,這個載入程式就叫作啟動載入程式(Bootloader)。 Bootloader是在作業系統執行之前執行的一段小程式。通過這段小程式,可以初始

python學習【第十七篇】:Python中的面向物件

1.什麼是類和類的物件? 類是一種資料結構,我們可以用它來定義物件,後者把資料值和行為特性融合在一起,類是現實世界的抽象的實體以程式設計形式出現。例項是這些物件的具體化。類是用來描述一類事物,類的物件指的是這一類事物的一個個體。例如:“人”就是一個類,而男人,女人,小孩等就是“人”這個類的例項物件;再比如“

Java第八天學習筆記面向物件陣列工具、單列設計模式、繼承

    陣列工具 1,陣列工具物件建立 class ArrayToolDemo { /*保證程式的獨立執行*/ public static void main(String[] args) { int[] arr={4,8,2,9,72,6}; //

黑馬程式設計師——Java面向物件匿名物件、程式碼塊、static關鍵字等

   a)子類只繼承父類的預設(預設)建構函式,即無形參建構函式。如果父類沒有預設建構函式,那子類不能從父類繼承預設建構函式。    b)子類從父類處繼承來的父類預設建構函式,不能成為子類的預設建構函式。    c)在建立物件時,先呼叫父類預設建構函式對物件進行初始化,然後呼叫子類自身自己定義的建構函

java學習筆記面向對象static,final關鍵字

一次 static 變量 div nbsp 子類 方法 pan 抽取 java學習筆記之面向對象static,final關鍵字 一.static關鍵字 1.概述:   static靜態的,被static修飾的成員屬於類,不屬於單個對象,被所有對象所共享,存在靜態區中,靜態的

java學習筆記面向對象多態

成員變量 clas 創建 無法 復用 xtend 數據類型 需要 類重寫 面向對象三大特性之多態 一.多態的概念   多態是繼封裝,繼承之後,面向對象的三大特性。   現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的張三同學既是學生也是人,即出現兩種形態。

Java 編程思想》讀書筆記並發

角度 提高 負載均衡 多線程 讀書 思想 依賴 很好 搶占 一開始我們做的都是「順序編程」,但是有時候程序純順序執行的性能並不高,並且對於部分問題順序執行程序並不能很好地解決。 這時候「並發」就是一個很好的解決方案了,「並發」的含義其實很簡單,即並行地執行程序中的多個部分。

java學習筆記面向物件

成員變數與區域性變數的區別: /* 成員變數和區域性變數的區別: 1:在類中的位置不同 成員變數:在類中方法外 區域性變數:在方法定義中,或者方法宣告上 2:在記憶體中的位置不同 成員變數:在堆記憶體 區域性變數:在棧記憶體 3:生命週期不同 成員變數

Java基礎——面向物件封裝

面向物件索引: Java基礎——面向物件(二)繼承 Java基礎——面向物件(三)抽象類 Java基礎——面向物件(四)介面 Java基礎——面向物件(五)多型 Java基礎——面向物件(六)內部類 Java基礎——面向物件(七)Object類 目錄 一、什麼是面