java基礎07

面向對象之封裝:

把實現細節給隱藏,對外提供公共的訪問方式。

好處:將變化隔離、便於使用、提高重用性和安全性

Private 關鍵字:是一個權限修飾符,用於修飾成員變量和成員方法, 被private修飾的成員只能在本類方法中使用


想給成員變量賦值,通過setXxx()方法。和帶參數的構造函數

想單獨獲取一個成員變量,用getXxx()方法。

構造方法:

和類名一樣的方法就要構造方法

作用:創建對象,對對象的內容進行初始化

特點:

函數名和類名相同

沒有返回值類型

沒有返回值


格式:

修飾符 類名(形參...){

 

}

 

注意事項:

如果一個類沒有提供構造方法,那麼系統將會自動給出一個默認的無參構造方法

如果自己給定了構造方法,系統將不再給出構造方法。

若使用無參構造,就要自己寫一個無參構造方法。

如果一個方法是類名,但是有返回值類型,不管是不是void,都構造普通函數

 

如何把一個同名局部變量賦值給一個成員變量,這是使用this關鍵字。

一個方法中的變量,首先在局部變量的位置找,如果沒有再在類中尋找,如果還沒有就報錯。

 

This:代表當前類的一個引用對象

在一個方法內部,誰調用這個方法,this就代表誰。

應用場景:

用於解決局部變量隱藏成員變量。

通過this調用本類的構造方法。注:它必須放在構造方法的第一條語句上

修飾符: public default protected private


Java的類格式:

成員變量私有化

無參構造函數

公共的set/get方法

 長方形案例:

/*
	注意事項:
		A:成員變量要給出註釋。
		B:所有的方法之間要有空行。

	所有的方法你都可以不寫,只要你不用。
	但是,下面的這種寫法是我們的基本要求。JavaBean。
		成員變量私有
		無參構造方法
		公共的get/set方法。
*/
class Rect {
	//長方形的長
	private int length;
	//長方形的寬
	private int width;

	//構造方法
	public Rect(){}

	public Rect(int length,int width) {
		this.length = length;
		this.width = width;
	}

	//setXxx()/getXxx()方法
	public void setLength(int length) {
		this.length = length;
	}

	public int getLength() {
		return length;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	public int getWidth() {
		return width;
	}

	public int getZhouChang() {
		return (length+width)*2;
	}

	public int getArea() {
		return length*width;
	}
}

class RectTest {
	public static void main(String[] args) {
		//無參構造+setXxx方法
		Rect r1 = new Rect();
		r1.setLength(30);
		r1.setWidth(20);
		System.out.println(r1.getZhouChang());
		System.out.println(r1.getArea());

		//帶參構造
		Rect r2 = new Rect(30,20);
		System.out.println(r2.getZhouChang());
		System.out.println(r2.getArea());
	}
}


Static關鍵字:

靜態的意思,可以修飾成員變量,可以修飾成員方法,被static修飾的成員變量被所有的對象所共享。

 

使用場景:

如果某個成員是被所有對象共享的時候,才使用靜態修飾。

 

特點:

隨之類的加載而加載。

優先於對象而存在。

被所有對象所共享。

可以直接被類名調用。

被靜態修飾的內容可以通過對象調用也可用類名調用,建議用類名調用。

 靜態的訪問
A:靜態方法:
靜態成員變量
靜態成員方法
B:非靜態方法:
非靜態成員變量
非靜態成員方法
靜態成員變量
靜態成員方法
簡記:靜態只能訪問靜態。
注意:在靜態方法中沒有this關鍵字。
(5)什麼時候該用靜態呢?
儘量不要使用靜態,因爲靜態的內容是隨着類的加載而加載,生命週期太長,佔用資源,效率低。
該用的情況:
A:被所有對象共享的數據。
B:一個工具類。爲了讓別人直接通過類名調用。

使用注意:

靜態方法只能訪問靜態成員 靜態只能訪問靜態。(非靜態可以隨意訪問)

靜態方法中不可寫thissuper關鍵字

主函數是靜態的。

 

主方法:語句分析

Public : main是被jvm調用,所以,它的方法權限必須足夠大。

Static main是被jvm調用,爲了方便,不創建對象,直接通過類名調用

Void : 空的意思。因爲我們把結果返回給jvm沒有意義。

Main : 習慣寫法,都叫main。主要的意思,程序的入口。

String[] args : 這是一個字符串數組。在早期是爲了接收鍵盤錄入的

 

我們在一個類中使用其他類的功能,按照正常情況下:我們首先編譯其他的類

得到class文件,然後再使用。而如果我們使用了多個這樣的類,每個類都要進行編譯

太麻煩,所以java幫你自動編譯所使用到的類,你只需要編譯當前的類即可。

 

那麼這個時候,我們製作幫助文檔

 (1)幫助我們知道別人提供給我們的class裏面到底有什麼
(2)步驟
A:自己寫一個類,加入文檔註釋
B:通過JDK的javadoc工具製作
格式:javadoc -d doc -version -author ArrayTools.java

學習和使用API的步驟:

注意:類及方法出現的版本。

 

瞭解API是什麼?應用程序編程接口。(JDK提供給我們的幫助文檔)

Application Programming Interface

找到API

雙擊打開

點擊顯示,出現一個索引界面對應的文本框

你要知道你學習的那個類是什麼

Math

在輸入框裏輸入Math,回車就能得到一個關於Math類的描述信息

首先看包:

如果是java.lang包下的類是可以直接使用的

如果是在其他包下,必須要導包。

 案例:

import java.util.Scanner;
class GuessNumberGame{
	public static void main(String[] args){
		//創建一個1-100之間的隨機數
		int num = (int)(Math.random()*100)+1;
		while(true){
			//讀取鍵盤錄入
			Scanner sc = new Scanner(System.in);
			System.out.println("請輸入你要猜的數字:");
			int guessNum = sc.nextInt();
			//對兩個數進行判斷
			if(guessNum > num){
				System.out.println("女媧把我造的小了!");
			}else if(guessNum < num){
				System.out.println("上帝給了我一個比你強健的體魄!");
			}else{
				System.out.println("恭喜你!你已經達到了神的境界");
				break;
			}
		}
	}
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章