日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java学习笔记九

發(fā)布時間:2024/2/28 java 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习笔记九 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


45.

第一個會叫的程序雖然不知道為什么,以后看看

package com.jianjian5;

?

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Date;

?

import javax.swing.JOptionPane;

import javax.swing.Timer;

?

public class TimerTest

{

?? public static void main(String[] args)

?? {

????? ActionListener listener = new TimePrinter();

????? Timer t = new Timer(1000,listener);

????? t.start();

????? JOptionPane.showMessageDialog(null,"Quit program");

????? System.exit(0);

?????

?????

?? }

}

class TimePrinterimplements ActionListener

{

?? public void actionPerformed(ActionEvent event)

?? {

????? Date now = new Date();

????? System.out.println("At the tone , the time is "+ now);

????? Toolkit.getDefaultToolkit().beep();

?? }

}

?

46.

作為接口的代表 interface Comparable 接口:

Arrays類中的sort方法承諾可以對對象數(shù)組進行排序,但要求對象所屬的類必須實現(xiàn)了Comparable接口

?

47.

if 語句中的陷阱:

public int compareTo(People other)

?? {

????? if(salary < other.salary)

??????? return -1;

????? if(salary > other.salary)

??????? return 1;

????? if(salary == other.salary)

?????

??????? return 0;

??

?? }

編譯器會提示錯誤,原因是什么呢,我比較兩個數(shù)據(jù)的大小,情況也就是這三種啊,但是我們知道,編譯器卻不知道,它認為,當全部符合三個數(shù)據(jù)的時候,我該返回什么?

所以最后一句最好寫成

return 0 ;

而不要加if 語句;

?

48.

看下面的程序

目的是通過比較三個人的薪水來排列打印出它們的薪水

其中有幾行代碼是比較重要的;

package com.jianjian5;

?

//import java.util.ArrayList;

import java.util.Arrays;

?

public class SortTest

{

?? public static void main(String[] args)

?? {

//??? ArrayList <People> list = new ArrayList<People>();

????? People[] staff = new People[3];

????? staff[0] = new People(3456);

????? staff[1] = new People(2343);

????? staff[2] = new People(2324);

????? Arrays.sort(staff);//就是按照自己的方式去比較;

????? for(int i = 0; i < staff.length; i++)

????? {

??????? System.out.println(staff[i].getSalary());

????? }

?? }

}

class People implements Comparable<People>

{

?? private int salary;

?? public int getSalary()

?? {

????? return salary;

?? }

?? public void setSalary(int salary)

?? {

????? this.salary = salary;

?? }

?? public People (int salary)

?? {

????? this.salary = salary;

?? }

?? public int compareTo(People other)

?? {

????? if(salary < other.salary)

??????? return -1;

????? if(salary > other.salary)

??????? return 1;

?????

??????? return 0;

??

?? }

}

?

49.

子類是不能繼承父類的私有域的;只能繼承其中的方法。

?

50.

增強的for each 循環(huán)!

package com.jianjian5;

?

import java.util.Arrays;

?

public class ForTest6

{

?? public static void main(String[] args)

?? {

????? int [] i = {3,1,6,7,24};

????? Arrays.sort(i);

????? for(int e : i)

????? {

??????? System.out.println(e);

????? }

?? }

1.

八種原生數(shù)據(jù)類型不能添加到泛型,即使有了自動拆裝箱,也是要使用它們的包裝類型作為泛型的說明。

?

2.

5.0新特性可以很大程度的提高程序的編寫效率,從工作平臺傳入數(shù)據(jù)字符串類型,統(tǒng)計每個字符串出現(xiàn)的次數(shù),還是利用Map;來做

?

?

package com.jianjian;

?

import java.util.HashMap;

?

public class FrequencyTest

{

?? public static void main(String[] args)

?? {

????? HashMap<String, Integer> map = new HashMap<String,Integer> ();//泛型

????? for(String s : args)//增強的for循環(huán)

????? {

??????? map.put(s,(null == map.get(s))? 1: map.get(s) + 1);

???????

????? }

????? System.out.println(map);

?????

?? }

}

看起來是很簡單的,但是要真正的理解才可以。

?

3.

枚舉應(yīng)用,個人認為枚舉是為我們提供了可選的基礎(chǔ)常量,是我們經(jīng)常會用到的,突出的是可選的,枚舉與switch語句結(jié)合的效果很好

隨著計算機的不斷普及,程序不僅只用于數(shù)值計算,還更廣泛地用于處理非數(shù)值的數(shù)據(jù)。例如:性別、月份、星期幾、顏色、單位名、學(xué)歷、職業(yè)等,都不是數(shù)值數(shù)據(jù)。在其它程序設(shè)計語言中,一般用一個數(shù)值來代表某一狀態(tài),這種處理方法不直觀,易讀性差。如果能在程序中用自然語言中有相應(yīng)含義的單詞來代表某一狀態(tài),則程序就很容易閱讀和理解。也就是說,事先考慮到某一變量可能取的值,盡量用自然語言中含義清楚的單詞來表示它的每一個值,這種方法稱為枚舉方法,用這種方法定義的類型稱枚舉類型

?

package com.jianjian5;

?

public enum ActionTest

{

?? GO, RUN,JUMP;

}

?

package com.jianjian5;

?

public class Action

{

?? public void method(ActionTest test)

?? {

????? switch (test)

????? {

??????? case?GO :

??????? ?? System.out.println("go");

?????????? break;

??????? case?RUN :

?????????? System.out.println("run");

?????????? break;

??????? case?JUMP :

?????????? System.out.println("jump");

?????????? break;

???????

????? }

??

?? }

?? public static void main(String[] args)

?? {

????? ActionTest test = ActionTest.GO;

????? Action action = new Action();

????? action.method(test);

?????

?? }

?

}

?

4.

每個枚舉類型都有一個values(),其作用是返回自身的數(shù)組,這樣就可以用增強的for循環(huán)進行遍歷:

for(Color color :Color.values())

{

????? System.out.println(color);

}

總之就是values()方法返回一個數(shù)組!!!

?

5.

對于switch語句只能接受五種類型的數(shù)據(jù),其中的四種是 int ,char ,bity, sort,最后一種是 枚舉類型;

?

6.

同一類中的主方法,是可以調(diào)用向同類下的靜態(tài)方法的!記住。必須是靜態(tài)的

package com.jianjian7;

?

public class ThinkTest

{

?? public static void method()

?? {

????? System.out.println("helloworld");

?????

?? }

?? public static void main(String[] args)

?? {

????? method();

?? }

??

}

?

7.

枚舉與類的最大區(qū)別就是,枚舉在編譯時就已經(jīng)定義好的了實例,固定的實例,將枚舉中的成員都看作是枚舉的一個實例,枚舉和類一樣,也是有構(gòu)造方法的,在成員后面加上小括號其實就是在生成構(gòu)造方法,

?

?

package com.jianjian7;

?

public enum EnumTest

{

?? one("卡內(nèi)奇"),two("西多"),three("洛基");

?? private Stringname;

?? EnumTest(String name)

?? {

????? this.name = name;//this關(guān)鍵字只存在非靜態(tài)方法中,表示調(diào)用當前對象的形參,在靜態(tài)方法中不會使用this關(guān)鍵字,因為不需要形參!

?????

?? }

?? public String getName()

?? {

????? return name;

?? }

?? public static void main(String[] args)

?? {

????? EnumTest test = EnumTest.one;//用類名來獲取對象顯然的一說枚舉成員都是public static final 的!

????? System.out.println(test.name);

?? }

??

}

?

?

枚舉類型的valuesOf(String obj)接受一個String類型的對象轉(zhuǎn)換成枚舉類型

而且的一說,這個方法是靜態(tài)的方法,所以使用的時候最好用類名來調(diào)用,而且的而且,傳入的字符串必須是枚舉成員變量中的一個,這個方法的意義不大,聽張龍老師說好像是為了后面的方法利用,還有比較成員變量位置;

package com.jianjian7;

?

public enum Direction

{

?? UP,DOWN,LEFT,RIGHT;

?? public static void main(String[] args)

?? {

????? ?

????? System.out.println(Direction.valueOf("DOWN"));

?? }

}

?

8.

靜態(tài)導(dǎo)入,個人覺得意義不大,在靜態(tài)方法,靜態(tài)成員變量的基礎(chǔ)上省略掉類的名字,要求導(dǎo)入包的時候要精確到域或者方法

?

?

9.

要開始反射(reflection)的學(xué)習(xí),聽說難度非同一般,嗯,總之做好心理準備,堅持下去,做好筆記:

?

10.

Java中無論一個類生成了多少個對象,這些類都對應(yīng)一個相同的class類。

?


總結(jié)

以上是生活随笔為你收集整理的Java学习笔记九的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。