【Java】弱項強化筆記

Bonstoppo發表於2019-04-12

最近忙著開發微信的公眾號,但是開發到後面很多問題都成了JSP,Servlet和Java的問題了,其實Java在課上學的不是很紮實,物件導向很多都不清晰,public , static , private,protected 的都搞得不太清楚。這個文章就相當於是一份對於前面一些不太紮實或者一開始沒有學通的地方的一個總結吧。部分內容來自:菜鳥教程

 

1.Private私有訪問修飾符和類的方法的關係:

這個private是一個自己獨有的產物,別人是沒有許可權訪問的。但是外面人想要去修改這個東西怎麼辦呢?就是利用方法來進行修改。比如下面的這個salary是一個私有化的,這個地方的setSalary就是一個對外的視窗,外面的數值通過呼叫這個方法,把數字通過e傳回到這個類的裡面,然後在對於這個數值進行賦值。

package abc;

public class a1 {
	private double salary;
	
	public void age(){
		int age1 = 3;
		System.out.println(age1);
	}
	public void setSalary(double e){//這個地方就是a1這個類裡面暴露給外界訪問salary的唯一的方式,通過getsalary函式把數值傳遞進來,然後給salary賦值.//
		salary = e;
	}
	public static void main(String[] args){
		a1 a = new a1();
		a.age();
		//System.out.println();
	}
}

 

2.abstract的用法:

抽象類:

抽象類不能用來例項化物件,宣告抽象類的唯一目的是為了將來對該類進行擴充。它的意思就是說,這個地方就是說明一下,至於細節的東西下來再說。一個類不能同時被 abstract 和 final 修飾。如果一個類包含抽象方法,那麼該類一定要宣告為抽象類,否則將出現編譯錯誤。一旦這個地方有抽象的類,說明這個東西(類)也是抽象的。抽象類可以包含抽象方法和非抽象方法。

抽象方法:

抽象方法是一種沒有任何實現的方法,該方法的的具體實現由子類提供。抽象方法不能被宣告成 final 和 static。任何繼承抽象類的子類必須實現父類的所有抽象方法,除非該子類也是抽象類。如果一個類包含若干個抽象方法,那麼該類必須宣告為抽象類。抽象類可以不包含抽象方法。抽象方法的宣告以分號結尾,例如:public abstract sample();

package abc;

abstract class a1 {
	private double price;
	private String model;
	private String year;
	public abstract void goFast(); //抽象方法
	public abstract void changeColor();
}

 

3.位運算子:

幾個不太熟練的位運算子
操作符 描述 例子
& 如果相對應位都是1,則結果為1,否則為0 (A&B),得到12,即0000 1100
| 如果相對應位都是0,則結果為0,否則為1 (A | B)得到61,即 0011 1101
^ 如果相對應位值相同,則結果為0,否則為1 (A ^ B)得到49,即 0011 0001

 

4.增強for迴圈:

可以對任何的陣列使用,並且在其中的迴圈的指標就是陣列的型別而非原來的int型別。

package abc;

public class a1 {
	public static void main(String[] args){
		int[] numbers = {10 , 20 , 30 , 40};
		String[] names = {"LBJ" , "Kobe" , "Durant"};
		for(int i : numbers){
			System.out.println(i);	
		}
		for(String name : names){
			System.out.println(name);
		}
	}
}

 

5.Character類

用來判斷這個東西是不是字母或者是數字。

package abc;
public class a1 {
	public static void main(String[] args){
		Character ch = 'a';
		System.out.println(Character.isLetter(ch)); // Character型別是不是字母//
	}
}

 

6.StringBuffer和StringBuilder類

相對於String可以直接對其進行修改而不用建立一個物件。StringBuffer比StringBuilder類在多執行緒的情況下更加安全,而後者比前者自然速度要快。

package abc;
public class a1 {
	public static void main(String args[]){
		StringBuffer sBuffer = new StringBuffer("我是孫笑川,");
		sBuffer.append("我的微博是");
		sBuffer.append("帶帶");
		sBuffer.append("大師兄");
		System.out.println(sBuffer);
		}
}

 

7.Java陣列

可以直接return一個陣列。

package abc;
public class a1 {
	public static int[] reverse(int[] list) {
		int[] result = new int[list.length];
		for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
			result[j] = list[i];
		}
		return result;
	}
	public static void main(String args[]){
		int[] a = {1 , 2 , 3};
		int[] b = reverse(a);
		for(int i = 0 ; i < 3 ; i ++)
			System.out.println(b[i]);
	}
}

 

相關文章