J2SE知識點回顧(上)

part1:001基礎知識點html


單行註釋://java


多行註釋:/* */算法

eclipse中多行註釋:選定多行代碼+快捷鍵(ctrl+/)數組


使用eclipse格式化代碼:shift+ctrl+Fapp


輸出錯誤信息與調試信息:System.err.println(),System.out.println()dom


從控制檯接收輸入字符:Scanner scanner=new Scanner(System.in);//建立輸入流掃描器eclipse


檢查輸入位數:line.length()ide


強制類型轉換:long value=100L;byte btValue=(byte)value;將long型強制轉爲byte型測試


加密字符串與解密字符串:..=scan.nextLine()//獲取用戶輸入  ..=passworld.toCharArray();//獲取字符數組  遍歷數組:用for語句字體


三元運算符判斷奇偶:..條件運算String check=(number%2==0))?:條件結果A:條件結果B


左移運算實現乘法運算:左移n位至關於2的n次方


難點:異或運算的用法b=a^b^a  不借助第三變量實現兩個變量互換:藉助異或運算符"^"實現兩變量高效互換:A=A^B;B=B^A;A=A^B;

求奇數運算"N%2==1",若是要考慮到負數問題,任何負數應用這個算法的結果都會等於-1


part2:002流程控制語句

if語句

用if...else或者三目運算符(? : )判斷閏年。閏年公式:year%4==0&&year%100!=0||yera%400==0


驗證登陸信息的合法性 (equals()方法判斷兩字符串內容是否相同,「==」判斷的是字符串對象地址)

if(!username.equals("lee"){  //判斷用戶名合法性  

System.out.println("用戶名非法");

}else if(!password.equals("123"){判斷密碼合法性

System.out.println("密碼錯誤");

}else{  //經過以上兩個條件判斷默認經過登陸驗證

System.out.println("登錄成功");

}


switch語句

switch(表達式){ //該語句只支持對常量的判斷,如java的byte/short/int/char類型

case 常量表達式1:語句序列1

[break;]//可選

...

case 常量表達式n:語句序列n

[break;]//可選

default:語句序列n+1

[break;]//可選


判斷用戶輸入月份的季節

對於多個條件採用相同業務處理的狀況,能夠把多個case分支關聯在一塊兒,省略它們之間的break語句,而在最後一個相同的case分支中實現業務處理並執行break語句

好比下面判斷冬季的語句

switch(month){

case 12:

case 1:

case 2:

System.out.println("你輸入的月份屬於冬季");

break;


while語句

多數狀況下,遍歷數組都是使用for循環語句實現。其實應用while循環語句和自增運算也可實現。

while(條件表達式){ //條件表達式結果爲boolean類型,結果只能是true或false

語句序列 //循環體,在條件表達式爲true時執行

}


例子:使用while循環計算1+1/2!+1/3!+...1/20!


for語句

例子

使用for循環輸出楊輝三角

使用for循環輸入99乘法表

遍歷數組

for(初始表達式:條件表達式:循環表達式){

循環體

}


part3:003數組操做


獲取一維數組的最小值思路:獲取用戶輸入,用trim()方法去除左右空格,對輸入內容進行非法檢測,用split()方法將輸入的字體串分割成字符串數組,並將字符串數組轉換到整型數組,最後在遍歷數組的同時提取最小值顯示到窗體的標籤控件中。

參考:http://leexy.blog.51cto.com/4136883/1303209


將二維數組中的行列互換:經過雙層for循環遍歷數組

參考:http://leexy.blog.51cto.com/4136883/1304048


利用數組抽取幸運觀衆:須要用到String類的split()方法和Math的random方法

參考:http://leexy.blog.51cto.com/4136883/1303995


利用數組設置JTable表格的列名和列寬,關鍵代碼:

private JTable getTable(){
if(table==null){
table=new JTable();//建立表格
String[] columns={"id","姓名","性別"};//定義列名數組
int[] columnWidth={10,20,30};//定義寬數組
//建立表格數據模型
DefaultTableModel model=new DefaultTableModel(columns,15);
table.setModel(model);//設置表格數據模型
TableColumnModel columnModel=table.getColumnModel();//獲取列模型
int count=columnModel.getColumnCount();//獲取列數量
for(int i=0;i<count;i++){//遍歷列
TableColumn column=columnModel.getColumn(i);//獲取列對象
column.setPreferredWidth(column Width[i]);//以數組元素設置列的寬度
}
}
return table
}


使用按鈕控件數組實現計算器界面 JButton[][] buttons=new JButton[i][j]

經過複選框控件數組實現添加多個複選框控件 JCheckBox[] boxs=new JCheckBox[labels.length]


數組排序:選擇排序法、冒泡排序法、快速排序法、直接插入法、sort()方法


反轉數組中元素的順序


part4:004面向對象


自定義類:建立一個自定義的類,提供構造方法和成員方法給它,最後能夠在另外一個類的main方法中建立自定義類的對象

舉例

public class Animal{ //自定義類
private String dog;//定義dog
public Animal(String dog){//利用構造方法初始化域
this.dog=dog;
}
public String getDog(){//成員方法,得到dog
return;
}}
再建立一個Test類
public class Test{
public static void main(String args[]){
Animal animal=new Animal("哈皮狗");
System.out.println(「我家裏養了一隻"+animal.getDog());
}
}

關於方法調用:溫度單位轉換例子-在java中使用普通方法須要先建立一個方法所在類的對象,而後經過這個對象調用這個方法。而靜態方法能夠直接使用類名來調用

public class Test{
public double getFahrenheit(double celsius){
double fahrenheit=1.8*celsius+32;
return fahrenheit;
}
public static void main(String[] args){
System.out.println("溫度℃");
Scanner in=new Scanner(System.in);
double celsius=in.nextDouble();
/*
*靜態方法:直接能夠用類名調用,不過要確保上面方法是static靜態方法
*double fahrenheit=Test.getFahrenheit(celsius);
*/
Test converter=new Test();//建立類的對象
double fahrenheit=converter.getFahrenheit(celsius);
System.out.println("華氏度\n"+fahrenheit);
}
}


成員變量的默認初始化值:對於基本類型的成員變量,虛擬機會自動爲其進行初始化,但對於引用變量的變量,在使用以前須要進行初始化,不然會拋出NullPointerException異常。好比

private byte b;//聲明基本類型變量b
private String string;//聲明引用類型變量string
public static void main(String args[]){
Test init=new Test();//建立對象
System.out.println("比特類型的初始值:"+init.b);//結果:比特類型的初始值:0
System.out.println("引用類型的初始值"+init.string);//結果:引用類型的初始值null
}

關於java的基本類型與引用類型,能夠參考文章:http://ajava.org/article-9-1.html


單例模式的特色在於僅能得到一個對象。爲了防止其餘用戶建立對象,須要將構造方法設置爲private的,而後提供一個一個靜態方法,該方法返回這個類的對象。例子能夠參考:

http://leexy.blog.51cto.com/4136883/1304452


遞歸算法完成漢諾塔問題求解:爲了將N個盤子從A移動到C,須要先將第N個盤子上面的N-1個盤子移動到B上,這樣才能將第N個盤子移動到C上。同理,爲了將N-1個盤子從B移動到C上,須要將N-2個盤子移動到A上。好比有6個盤子:

public class Test{
public static void moveDish(int level,char from,char inter,char to){
if(level==1){  //若是隻有一個盤子就退出迭代
System.out.println("從"+from+"移動盤子1號到"+to);
}else{  //若是有大於一個盤子就繼續迭代
moveDish(level-1,from,to,inter);
System.out.println("從"+from+"移動盤子"+level+"號到"+to);
moveDish(level-1,inter,from,to);
}
}
public static void main(String[] args){
int nDisks=6;    //設置漢諾塔爲6階
moveDish(nDisks,'A','B','C');//實現移動算法
}
}


利用重載技術編寫同名方法(具備類似功能不一樣參數的方法):當對象在調用方法時,能夠根據方法參數的不一樣來肯定執行哪一個方法。方法參數的不一樣包括參數類型不一樣,參數個數不一樣和參數順序不一樣。但不能經過返回值來區分方法。

public class Test{
public void info(){  //定義無參方法
System.out.println("普通方法:小弟弟1歲了");
}
public void info(int age){  //定義包括整型參數的info()方法
System.out.println("重載方法:小弟弟"+age+"歲了");
}
public static void main(String args[]){
Test a=new Test(); //測試無參婁info()方法
a.info();for(int i=1;i<5;i++){//測試有參數info()方法
a.info(i);
}
}
}


統計圖書銷售量:在類的構造方法中增長計數器來實現該功能

在Book類中定義一個靜態的成員變量用來保存實例化的次數,構造方法實現計數器的功能:

public class Book{
private static int counter=0;
public Book(String title){
System.out.println("售出圖書"+title);
counter++;
}
public static int getCount(){
return counter;
}
}

在Test類中建立Book類對象並輸出建立對象的個數:

public class Test {
public static void main(String args[]){
String[] titles={"A書","B書","C書"};、//建立書名數組
for(int i=0;i<10;i++){
new Book(titles[new Random().nextInt(3)]);//new Random().nextInt(3)用於得到
0-2的整數
}
System.out.println("總共銷售了"+Book.getCount()+"本圖片");
}
}



使用字符串輸出對象:經過重寫toString方法來實現

public class Cat{
private String name;
private int age;
private double weight;
public Cat(String name,int age,double weight){//初始化
this.name=name;
this.age=age;
this.weight=weight;
}
public String toString(){ //重寫toString方法
StringBuilder sb=new StringBuilder();
sb.append("名字"+name+"\n");
sb.append("年齡"+age+"\n");
sb.append("重量"+weight+"\n");
return sb.toString();
}
}

在main()方法中建立Cat類對象

public class Test{
public static void main(String args[]){
Cat cat1=new Cat("JAVA",12,21);//建立對象並初始化
Cat cat2=new Cat("WEB",12,21);
Cat cat3=new Cat("JAVA",12,21);
System.out.println("貓咪1號"+cat1);
System.out.println("貓咪2號"+cat2);
System.out.println("貓咪3號"+cat3);
}
}
相關文章
相關標籤/搜索