微冷的雨Java基礎學習手記(一)

使用Java理解程序邏輯java

       之凌波微步程序員

船舶停靠在港灣是很安全的,但這不是造船的目的web

                                                北大青鳥五道口原玉明老師出品算法

1.學習方法:

01.找一本好書編程

初始階段不適合,能夠放到第二個階段,看到知識點時,要進行驗證數組

02.查看幫助文檔和搜索引擎的使用瀏覽器

藉助網絡上的Blog文章安全

03.不要急功近利網絡

不要抱着速成的想法,不然必然走彎路
學習編程不是一蹴而就的事情
付出的成本高,纔能有一個高薪的收入架構

04.不要浮躁

不要什麼都學,只學有用的

浮躁的程度和技術水平成反比的
走本身的路,讓別人去浮躁去吧!

天天問問本身,我是否是開始浮躁了,不能人云亦云.

05.學習語言基礎很重要

基礎不紮實,開發出的程序就很危險
將所學的用到開發中去

06.何時去看別人的代碼?

揣摩編寫代碼人的思路,遠比本身寫軟件要可貴多
初學者不要去看別人的代碼

在紙上把調用關係畫出來,抓主線.

07.如何提升?

有主動性。學習的慾望要強。上網找別人的問題,爲本身來提升

08.培養髮現問題、思考問題和解決問題的能力

出錯信息,異常信息
養成發現問題、思考問題和解決問題的能力

這種能力受益一生,且不隨時間變化

09編程的思想

多用心,多動手
程序運行的原理和機制
編程的目的,函數的調用,內存模型

10.先學脈絡,再學枝葉

第一章  Java基礎

程序目標:減輕現實生活中一類人的工做量,提升工做效率。

學員最終能夠書寫系統:

超市管理系統,POS機系統等

入庫單

銷售單

01.課程重點

   五大重點:    

01.分支(選擇)結構

    02.循環結構

03.數組

04.二重循環

05.帶參方法

02.什麼是計算機程序?

解析:就是爲了完成某一項工做而執行的一系列有序指令的集合。

03.Java相關的技術有哪些?

JavaSE(桌面應用開發)  JavaEE(Web開發)

老師,你教教我如何斷定一個程序是桌面程序仍是web程序?

解析:瀏覽器:

IE

     搜狗瀏覽器(內核IE) 傲遊  世界之窗  360 QQ  獵豹

FireFox

Google

Opera

IE不等於瀏覽器,只是瀏覽器的一種

斷定規則:若是一個程序(軟件)不須要藉助瀏覽器就能夠執行的,那麼就是桌面應用程序

反之,是web應用程序。

04.開發Java程序的步驟有哪些?

編寫,編譯,運行

05.Java程序的基本框架是什麼?

解析:外層框架和內層框架,詳細見後續講解。

06.Java的註釋類型有哪些?

單行://

多行:/**/

課程重點:

01.平臺和語言不是一碼事。一個平臺下能夠運行多種語言編寫的代碼。

班級管理系統

宿舍管理系統

超市管理系統

國家電力管理系統

水費管理系統

OA管理系統

07.開發本身的第一個java程序

   01.配置環境變量

    001.對個人電腦點擊右鍵→屬性→高級系統設置→環境變量→系統變量,在系統變量中

查找有沒有名稱爲path的變量名,若是有,直接點擊「編輯」按鈕,而後按「Home」鍵將

光標定位到第一個位置

   002.打開「個人電腦」→打開C盤→找到「Program Files文件夾」→Java→jdk1.7.0_17

→bin,複製路徑

   003.將複製的路徑粘貼到光標閃動的位置,而後緊跟一個分號(;)

   004.一路肯定,直到全部窗口消失。

   005.打開「開始」→「運行」→輸入cmd→輸入javac回車,若是出現一連串中文,證實

環境變量配置成功。

  02.編寫代碼

    001.在D盤的根目錄建立一個名稱爲Hello的後綴名爲java的文件。

    002.編寫代碼

  03.編譯

    經過javac命令將後綴名爲.java的文件編譯成後綴名爲.class的文件(字節碼文件)

  04.運行

   經過java命令運行後綴名爲.class的文件,運行的時候,後綴名不須要

     使用記事本編寫第一個Java應用步驟

     1.編寫源程序

     2.用javac命令將後綴名爲.java文件編譯成後綴名爲.class的文件

     3.使用java命令執行硬盤上後綴名爲.class,可是點和class都不要

     說有同窗問,爲何在把.class文件用java命令執行的時候,不須要後綴?

     專業人士解析:

      當咱們把.class文件交給JVM(Java虛擬機)的時候,它能夠自動識別出後綴。

     Java執行流程

     Happy.java---第一道編譯工做交給Java編譯器---->Happy.class(字節碼文件)

     -------第二道編譯交給JVM----->二進制(CPU能夠識別)

08.程序編碼規範

解析:做爲一個專業的程序員,編碼規範以下:

    01.文件名,全部代碼的名字都必須是英文的,並且全部出現的標點符號都是在

英文半角下。

02.代碼要有縮進。

09.MyEclipse和Eclipse區別?

解析:MyEclipse(收費的)

      Eclipse(免費的)

MyEclipse功能比較強大

10.Java程序的執行機制

  解析:01.編譯過程

       就是將後綴名爲.java的文件經過java編譯器編譯成後綴名爲.class的文件,編譯命令

   javac

   02.執行(運行)過程

   就是經過java虛擬機(jvm)執行硬盤上後綴名爲.class的文件,執行的命令是java

wps97DC.tmp

05.public class HelloWorld{

  public static void main(String[] args){

    System.out.println("個人第一個Java程序");  

  }

}

咱們書寫代碼是在內層框架中。

06.main方法是java程序的入口,全部程序都是從main方法的第一行代碼開始執行的。

07.println()換行打印輸出內容,print()不換行

11.轉義字符

\n:換行

\t:一系列空格

考試啊親:第二章學完後

09.java中的註釋

單行註釋//

//我是高貴的註釋:我有特權,編譯器不會理會我

    //幾十萬行代碼: 3個月後  方便團隊成員閱讀,方便本身閱讀

多行註釋:/**/

10.在java中,包名中每個點都對應硬盤上的一層文件夾

11.在真正的開發中,我們書寫的代碼所作的單元測試,都是由程序員來完成的。

第二道測試是由專業的測試人員完成的。

  Bug   

做業環節:

01.日記一篇

02.前兩章單詞

03.課後第3和第四題

第二章  變量  數據類型  運算符

1.變量

  重點:01.變量就是一塊空間(用旅館的例子作類比)

        02.變量三要素:數據類型 變量名 變量值

03.因爲電腦記錄位置的時候不是很好找(0x0156892321)變量名(num)。

二層 左手邊 第三間(203)

2.數據類型

int

char

String

double 

char類型只能存儲單個字符,若是你想存儲一個空字符,要打一個空格。

3.命名規範,如不規範,買糖吃

  1.包名全部字母均小寫。

  2.類名首字母大寫

  3.變量首字母小寫,後續有含義的單詞首字母大寫。例如stuName  stuAge

  4.首字母只能是字母,下劃線和$符號中的一個,後續的內容能夠是數字。   

    注意點:變量名不能和關鍵字重複

4.The local variable title may not have been initialized

   局部變量"title"沒有被初始化(賦值)

定義變量的兩種方式

001.先聲明,再賦值

    int num;

num=5;

002.聲明的同時並賦值

int num=5;

5.表達式概念:

   用運算符將操做數鏈接起來的式子就稱爲表達式a+b

6.賦值運算符(=)

  算術運算符:+ - * / %

  自增運算符

  int num=5;

  num++;//等價於 num=num+1;

  //++在前和在後的區別

  System.out.println(num);

7.類型轉換

  1.自動類型轉換

     規則1:

在一個表達式中,若是有一個操做數是double類型,那麼整個表達式會被自動提高會double類型

     規則2:類型相容,目標類型>源類型     

  2.強制類型轉換

   規則:類型相容,目標類型<源類型

8.Scanner用法

  如何接收用戶從鍵盤上錄入的內容?

  路人甲說:接收int怎麼搞?

  專業人士解析:input.nextInt()

  路人乙收:如何接收double類型?

  專業人士解析:input.nextDouble();

  星爺問:如何接收字符串?

  專業人士解析:input.next()

  使用Scanner分三步:

  01.先導入包import java.util.Scanner; (進入到商場)

  02.建立一個掃描儀對象  Scanner input=new Scanner(System.in); 

  02.啓動掃描按鈕       String name=input.next();

wps97ED.tmp

wps97EE.tmp

9.個十百千問題

做業環節:

  01.日記

  02.第二章總結

  03.第二章課後除了類型轉換題目

  04.開通本身的Blogs

第三章 if選擇結構

Int num=70;

If(num>90){

  //執行

}else{

}

        //www.cnblogs.com

        //http://www.oschina.net/

        //csdn

        //http://www.iteye.com/magazines

        //51aspx源碼網

01.分支結構

從這一章開始咱們書寫的代碼可能不是從上到下順序執行,就是程序的流程能夠

發生跳轉。這種結構分支結構。以前咱們全部代碼都是順序執行。

02.邏輯運算符

&&:邏輯與  

   *表達式1&&表達式2 同真爲真,其他爲假

||:邏輯或  

   *:表達式1&&表達式2 有真必真,其他爲假

  !:邏輯非

   *:取反

03.那些年,咱們犯的錯

     01.錯誤:javScore cannot be resolved

  解決方案:可能性有兩種

            *:就是變量名書寫錯誤

*:沒法訪問到該變量

02.不堪入目的在類裏面直接寫代碼,代碼沒有出如今main方法中

04.if-else選擇結構

     語法:if(){

}else{

}

05. java中產生隨機數方法

  (int)(Math.random()*10); 

  範圍:從0到1,能取到0,可是取不到1

06.多重if選擇結構

  if(條件){

  }else if(){

  }else{

  }

  多重if各個分支若是順序互換,語法不報錯,可是會影響程序的運行結果 。

07.在java中,比較兩個字符串是否相同,用的是equals,而不是==號。

08.嵌套if

  在一個ifelse選擇結構中,又嵌套了另一個完成的ifelse選擇結構

  if(){

     if(){

}else{

}

  }else{

  }

做業時間:

1.第四章 Switch選擇結構預習

2.日記本

3.單詞3和4章

4.今天講的

   產生1到3之間的隨機數

   If-else

   多重if

   嵌套if

wps97FE.tmp

wps97FF.tmp

wps9810.tmp

第四章  Switch選擇結構

01.使用Switch語句常見錯誤:

1.case後必加break,防止case穿透

2.case後面的變量必須各不相同

3.default塊順序能夠變更,但要注意其執行順序。一般,default塊放在末尾,也能夠省略

4.switch後面小括號中表達式的值必須是整型或字符型。

02.經過hasNextInt()方法來斷定用戶錄入的內容是否 是數字

04.登錄素材

        System.out.println("********歡迎進入微冷的雨購物管理系統************");

System.out.println("菜單功能:");

System.out.println("\t1.登錄系統");

System.out.println("\t2.退出系統");

System.out.println("請輸入您要操做的功能,輸入數字便可,親!!!!");

System.out.println("歡迎進入主界面,該軟件爲您提供了豐富的功能");

System.out.println("1.客戶信息管理");

System.out.println("2.購物結算");

System.out.println("3.真情回饋");

System.out.println("4.註銷");

                System.out.println("是否參加優惠換購活動:");

System.out.println("1:滿50元,加2元換購百事可樂飲料1瓶");

System.out.println("2:滿100元,加3元換購500ml可樂一瓶");

System.out.println("3:滿100元,加10元換購5公斤麪粉");

System.out.println("4:滿200元,加10元可換購1個蘇泊爾炒菜鍋");

System.out.println("5:滿200元,加20元可換購歐萊雅爽膚水一瓶");

System.out.println("0:不換購");

System.out.print("請選擇:");

  做業時間

     01.15分鐘提問單詞和各類if

     02.頒發前3名獎品

     03.自行做業

00.預習第五章 循環結構

01.日記本寫一篇

02.單詞

03.博客文章(if-Switch選擇結構)

wps9821.tmp

02.wps9822.tmp

wps9832.tmp

第五章 循環結構(一)

1.以前學習的兩種結構

   01.順序結構

   02.分支結構

   03.循環結構

2.While循環結構

   *while循環

循環四要素:01.初始變量  02.循環條件  03.改變迭代變量的值 04.循環體

   *:經過while循環解決「張浩寫1000遍好好學習的問題」

*:字符串做爲循環條件

     老師天天檢查張浩的學習任務是否合格,若是不合格,則繼續進行。

老師給張浩安排的天天的學習任務爲:上午閱讀教材,學習理論部分,下午上機編程,掌握代碼部分。

*:初始變量爲多個值的循環

2012年培養學員25萬人,每一年增加25%,請問按此增加速度,到哪一年培訓學員人數將達到100萬人?

3.練習

  *計算100以內的偶數之和

  *查詢商品價格

  *結帳和找零

4.do while循環結構

answer cannot be resolved(解析)

do{

}while(條件表達式);

do{

System.out.println("已經完成編碼");

System.out.println("合格了嗎?(y/n)");

answer=input.next();  //n

    }while(answer.equals("n"));

do-while循環的執行機制:

首先do所在的{}裏面的內容執行一遍,而後拿變量answer和固定的字符串"n"作對比,若是

條件成立,那麼繼續執行do{}中的內容,若是不成立,那麼就退出整個do-while循環。

5.斷點調試步驟

設置斷點

啓動調試

單步運行

調試啓動後,運行到設置斷點的代碼行將停住

點擊F6能夠單步運行程序,觀察程序運行過程

觀察變量

單步運行時能夠在「變量」視圖中看到變量當前的值

發現問題

修正代碼,從新運行

解決問題

2、程序調試的目的:找出缺陷緣由,修正缺陷

3、程序調試的主要方法:設置斷點、單步執行、觀察變量

wps9843.tmp

wps9844.tmp

第六章  循環結構(二)

1.for的出現是爲了精簡以前while和do-while循環的語法,將以前散亂排列的其中三個要素融合到了for循環固定的語法結構中

For(表達式1;表達式2;表達式3){

  表達式1:初始變量

  表達式2:循環條件

  表達式3:迭代變量 

}

做業:第七章項目

wps9854.tmp

日記

第八章  數組

1. 數組的定義:

解析:數組就是一組相同數據類型的集合,能夠當作是一個承載一堆

相同類型數據的一個箱子。

2.定義一個變量至關於在內存上佔據一塊空間

  定義一個數組至關於在內存上佔據一連串內存空間

3.經過length能夠獲取數組中一共有幾個元素

4.案例

int[] nums=new int[3];

數組的類型其實上就是數組當中每一個元素的類型。

String[] names=new String[3];//數組的聲明

names[0]="張靚穎";

names[1]="劉德華";

names[2]="周星星";//賦值

//names[3]="鞏俐";//下標越界

for(int i=0;i<names.length;i++){

  System.out.println(names[i]);//使用

}

double[] nums=new double[3];

nums[0]=1.0;

nums[1]=2.0;

nums[2]=3.0;

for(int i=0;i<nums.length;i++){

  System.out.println(nums[i]);

}

2.數組四要素

001.標識符:指的是數組的名字

002.數組元素:數組中的每一項數據都稱爲數組的一個元素

003.數組下標:某個元素在數據中的位置或者編號

004.數組類型:每個元素的類型

6.注意點:數組一旦定義,不能夠再改變

7.使用數組的優勢?

解析:001.代碼量減小了

      002.方便查找

8.定義數組的時候經過new關鍵字開闢空間

*********************************************************

咱們的第三節課

3.會使用三種方式來對數組賦值

方式一:經過下標賦值

    names[0]

方式二:經過在聲明的同時直接經過{}賦值

int[] nums={1,2,3};

方式三:循環賦值(藉助數組的下標)

02.會經過循環的方式給數組元素賦值

03.常見錯誤

04.數組排序(升序)

05.打擂比較算法

  if(num>max){

    max=num;

  }

01.回顧數組

目的:爲了方便的操做數據類型相同的一組數據,咱們出現了數組。

由於使用數組能夠簡化咱們對數據的存取操做。

int[] nums=new int[3];

String[] names=new String[3];

double[]  numbers=new double[3];

方式二:經過{}直接賦值

int[] nums={1,2,3,4};

*:如何獲取數組中元素的個數?

解析:length

*:經過for循環逐個遍歷數組中每一個元素,而後輸出

for(int i=0;i<nums.length;i++){

   System.out.println(nums[i]);

}

04購物金額結算

05.數組排序

如何對一些列數字進行降序排列??

解析:sun公司並無提供一個方法專門用於降序排列,可是咱們能夠轉換

一下思路,先對數組中元素進行升序排列,而後降序輸出數組中元素。

031.補充問題:

在咱們本身的類中,能夠對多個系統類進行導入使用。例如可同時使用Arrays和Scanner

06.打擂比較算法

07.插入算法(專題來說)

wps9865.tmp

兩套代碼:

Eg1:

public static void main(String[] args) {

// 我有一個按照升序排列的int類型數組

//如今我想將35扔到該數組中,可是得保證整個數組依然是升序排序

int[] nums={10,20,30,40};

int insertNum=25;

//01.打印原數組的內容

for (int i = 0; i < nums.length; i++) {

System.out.print(nums[i]+"\t");

}

//先大笑三聲,終於出錯了

//怕的是你想讓程序,

System.out.println("");

//01.定義一個長度爲原數組長度+1的數組

int[] newNums=new int[nums.length+1];

//02.將舊數組的第i項的值賦值給新數組

for (int i = 0; i < nums.length; i++) {

newNums[i]=nums[i];

}

//_10__  __20__  _30__   __40__  __0__

//03.找位置

int index=newNums.length-1;//應該將35扔到什麼位置

for (int i = 0; i < newNums.length; i++) {

if(newNums[i]>insertNum){

//當前的i就是我要找的位置

//因此我將i的值賦值給index偷偷記錄起來

index=i;

break;

}                     //[3]

}                         //35

//_10__  __20__  _30__   __40__  __0__

//04.元素後移,可是須要倒着移,將[i-1]的值賦值給第[i]

for (int i = newNums.length-1; i >index; i--) {

newNums[i]=newNums[i-1];

}

//05.給index位置從新賦值

newNums[index]=insertNum;

for (int i = 0; i < newNums.length; i++) {

System.out.print(newNums[i]+"\t");

}

}

Eg2:字符串相關

//插入算法

String[] songs={"Island", "Ocean",  "Pretty",  "Sun"};

for (int i = 0; i < songs.length; i++) {

System.out.print(songs[i]+"\t");

}

System.out.println("");

String insertSong="zoo";

//01.定義一個新數組,長度=舊數組長度+1

String[] newsongs=new String[songs.length+1];

//02.循環賦值

for (int i=0;i<songs.length;i++) {

newsongs[i]=songs[i];

}

//03.找位置

int index=newsongs.length-1;//找的位置

for (int i = 0; i < newsongs.length-1; i++) {

//半年時間理解一句話::

//若是一個對象是null,那麼是不能使用它的任何屬性和方法的

if (newsongs[i].compareToIgnoreCase(insertSong)>0) {

index=i;

break;

}

}

//04.循環後移,倒着移

for (int i = newsongs.length-1; i >index; i--) {

newsongs[i]=newsongs[i-1];

}

//05.從新給index位置賦值

newsongs [index]=insertSong;

for (int i = 0; i < newsongs.length; i++) {

System.out.print(newsongs[i]+"\t");

}

做業:1.日記本

      2.第八章預習(排序,打擂算法 ,插入算法)

     3.第七章項目

     4.上機練習1和2

3.我認爲讀書、首先要思考,要深刻地思考。不思考,讀書讀多少遍也沒有用。鉛筆、紙,我我的認爲都是讀書時,很是重要的條件。閱讀到必定階段,就會思考,就會造成不一樣的主題。 隨之,就會進行主題閱讀。要學會有效地,系統地進行知識的鏈接。從不一樣的角度去創造性地思考問題。
    4. 我平時工做很忙、下班後很累,回家後就想休息。我如何解決這種局面、首先要積極主動地去思考。不要讓本身的每一天,平平淡淡地度過。本身主動地、持續地去創造一些幸福快樂的時刻、巔峯的時刻。 不要讓本身的每一天碌碌無爲。個人改進方法是,下班後,抽出一個小時去跑步,感覺運動的巔峯時刻。這樣下班後,就不很疲勞。學習、工做、休息就會很是有效率。
   5. 沒有時間來學習。 就學習自己而言,始終是最重要的事情,固然學習的方式,有不少種。 多反思,多問「爲何」,每每會找到問題的答案。我在使用番茄鍾工做法以前,上班很累,效率很低,加班不少。使用番茄鍾工做法以後,加班逐漸地少了。
   6. 要學以至用,學習有目標,我在敏捷我的的年度回顧中曾提到了,像游泳時的狀態,不遊就會掉下去。沒有目標就是這種狀況。更具體的目標,就是咱們面臨的一個個的具體的問題。 

第九章 二重循環

第九章  二重循環

01.數組中插入元素的思想

   關鍵是步驟必須清楚

   001.將舊數組中每一個元素複製到新數組中

   002.找位置:找到用戶輸入的歌曲song應插入的位置

        核心思想:將舊數組中第i項的值與song對比,若是

        大於0,那麼證實該位置(index)就是咱們要找的位置。

   003.index以後的元素後移,這裏要注意,循環必須倒序執行。

       必定要注意循環條件,避免數組下標越界。

   004.給index位置賦值爲song

02.二重循環

1.直角三角形

*

**

***

****

*****

*號(j)          行號(i)

1                 1

2                 2

3                 3

for(i=1;i<=3;i++){

   for(j=1;j<=i;j++){

   System.out.print("*");

   }

   System.out.println("");

}

*

***

*****

*******

*********

      i(行號)             j(*號個數)

         1                     1

2                     3

3                     5

4                     7

5                     9

j=2*i-1

*****

****

***

**

*

       i(行號)             j(*號個數)

         1                     5

2                     4

3                     3

4                     2

5                     1

i+j=6

  j=6-i

等腰三角形

    *

   ***

  *****

*******

*********

for(int i=1;i<=5;i++){

   //第一個循環控制空格

   for(int j=1;j<=5-i;j++){

     System.out.print(" ");

   }

   //第二個循環控制*號

   for(int k=1;i<=2*i-1;k++){

     System.out.print("*");

   }

   System.out.println("");

}

解決問題的核心就是求i和j的關係

   行數(i)               空格數(j)                   星號(k)

     1                      4 1

     2 3 3

     3 2 5

     4 1 7

     5 0 9

i和j,i和k的關係

  j=5-i

  k=2*i-1

菱形打印

   *

  ***

*****

*******

*****

  ***

   *

解決問題的核心就是求i和j的關係

   行數(i)     空格數(j)      星號(k)  

i和j的關係

wps9876.tmp

*****

***

  *

***

*****

在二重循環中,若是內層循環中有break關鍵字,那麼她只能跳出當前循環,不能跳出外層循環。

            *********

           *       *

          *********

第十一章  類和對象

第十一章 類和對象

1.什麼是對象?

解析:是否是對面有一個美女你「狂敲鍵盤」就是面向對象編程呢??

  真正的對象:在現實的生活中,你肉眼能看的見或者摸得着的全部的物體均可以當作是對象,可是

  斷定是對象仍是類有一個核心點,就是

    *對象是能惟一區別於其餘事物的一個個體

2類的概念:

  具備相同屬性(靜態特徵)和行爲(操做)的一系列事物的統稱。

3.類和對象的關係

解析:類是對象的模板,對象是類的實例

解析:public class Student{

        //內容

public String name;

public int age;

public String address;

//方法

public void SayHello(){

  System.out.println("早上好!");

}

      }

規範:在java中,定義類必須首字母大寫。

3.如何建立一個類的對象?

解析:Student stu=new Student();

       stu.name="張靚穎";

   stu.age=100;

   stu.address="北京某地";

   stu.SayHello();

4.你們眼中的對象是神馬???

解析:」另外一位「,」客戶「

你自身 ,一個水杯 ,顯示器,

5.對象:現實生活中,能看獲得,摸得着的有區別於其餘事物獨有特徵的東西咱們就能夠稱之爲對象 。

每個對象都有自身特有的特徵,這些特徵包括動態和靜態兩個方面。

動態就稱爲操做(方法) ,靜態特徵就稱爲屬性。

6.Java,C#都是面向對象的語言,C語言面向過程

7.登錄:十一

  註冊

  購物車添加商品  9.5

  訂單造成

8.oo:Object 

oop:Object Oriented Programming,OOP,面向對象編程

OOD:Object Oriented Designer:面向對象設計

架構師

分析師

小胖:12306購票的車次查詢

小張:12306購票的網上支付功能

數值類型數據賦值圖

wps9886.tmp

數組賦值圖

wps9897.tmp

04.全部的類名首字母都要大寫

第十二章 類的無參方法

1.定義方法的語法:5要素

訪問修飾符  返回值  方法名(參數){

  方法體

}

2.若是在同一類中,那麼方法A調用方法B,直接經過方法名就能夠調用。

若是在類A中,想要調用類B中的方法say(),那麼須要先建立出類B的對象,而後調用。

wps9898.tmpwps98A8.tmpwps98A9.tmp

2.局部變量和成員變量

做用域不一樣

局部變量的做用域僅限於定義它的方法

成員變量的做用域在整個類內部都是可見的

初始值不一樣

Java會給成員變量一個初始值

Java不會給局部變量賦予初始值

3.JavaDOC

講解要點:JavaDoc可以從源代碼中抽取類、屬性、方法等的註釋,造成一個配套的API幫助文檔。使用Eclipse生成JavaDoc文檔註釋有兩種方法:

1.使用命令行方式生成
javadoc -d doc -subpackages mine

參數 說明

-d 指定API文檔的輸出目錄,默認是當前目錄。建議老是指定該參數。

-sourcepath 指定源代碼路徑,默認是當前目錄。 此參數一般是必須的。

-subpackages 以遞歸的方式處理各子包。關鍵參數!若是不使用本參數,每次只能處理一個子包(或需手工列出全部子包)。

wps98BA.tmp

wps98BB.tmp

wps98BC.tmp

再加上-author才輸出對應的做者信息

wps98BD.tmp

注:以上示例要求 javadoc.exe 所在路徑位於系統環境變量「PATH」中。

支付寶:接口

支付寶作方法定義 的

二流的公司,作方法調用

做業環節

01.第十四章和第15章預習

02.課後做業題

03.日記

04.Blog文章,下次聽寫帶返回值的方法

第十三章 人機猜拳系統

第十三章 人機猜拳系統

1.項目概述

因爲這是你們第一次接觸項目,但願每一個人都能作到心安理得。認真,仔細的對待此次項目。還有,但願你們能將每一次課後做業和上機練習都看作是在作一個項目 。

2.項目參與者圖解分析

wps98CE.tmp

3.人機猜拳運行效果圖

wps98CF.tmp

wps98DF.tmp

4.思路分析:

1.寫一個電腦類(Computer)

  要點:屬性

01.電腦暱稱 name

02.電腦得分 score

方法

01.機器出拳 showFist()

關鍵點:

01.生成1到3的隨機數

        方法一:int result=(int)(Math.random()*10)%3+1;

方法二:引入Random類

import java.util.Random;

Random random=new Random();

int ran=random.nextInt(3)+1;

02.用switch判斷生成的隨機數

若是爲1:剪刀

若是爲2:石頭

若是爲3:布

default:未知錯誤

這裏不用考慮輸入其餘數字的狀況,

由於數字不是用戶輸入的,而是

經過隨機數生成的,只能是1,2,3

03.最後須要將選擇的值返回

2.寫一個玩家類(Person)

要點:同上

可是要注意一點:此時switch中是用戶輸入的值,要作

對應的處理,若是用戶輸入錯誤,

讓用戶循環輸入

3.寫一個裁判類

要點:01. Person person;//用戶

Computer computer;//電腦

int count;//對戰次數

//對值進行初始化

public void initial(){

person=new Person();

computer=new Computer();

count=0;

}

02.繪製遊戲菜單

     001.先調用初始化方法initial

                     002.而後繪製菜單

System.out.println("---------歡迎進入微冷的雨猜拳系統---------");

System.out.println("\n\t\t******************");

System.out.println("\n\t\t***遊戲開始了 ********");

System.out.println("\n\t\t******************");

System.out.println("出拳規則:1.剪刀2.石頭3.布");

//選擇對方角色

System.out.print("\n請選擇對方角色(1.劉德華2.周星星3.鞏俐):");

Scanner input=new Scanner(System.in);

int role=input.nextInt();

      003.保存用戶選擇的角色,賦值給computer類的name屬性

004.分別調用機器和玩家的出拳方法,而後對出拳結果比較,

005.顯示比賽結果(以前先要計算比賽結果)

4.調用裁判類輸出結果

第十四章   帶參方法

第十四章 帶參方法

00.帶參方法的語法

public  int  say(String name){

}

01.調用帶參方法時,有哪些注意事項?

解析:實參類型,數量,順序必須與形參(方法定義中的參數)一致。

Public class Student{

   Public void say(String name ,int age){

  }

}

Public class MyMain(){

   Pulbic static void main(String[] args){

     Student stu=new Student();

     Stu.say(「李小龍」,20); 

  }

}

02.包的做用是什麼?

解析:爲了不命名衝突,爲了更好組織類,方便查找。

包的用途:1.方便管理

          2.快速檢索

          3.避免衝突

03.帶參方法案例

wps98F0.tmp

wps9900.tmp

//單行註釋Ctrl+/  多行註釋:Ctrl+Shift+/  取消多行註釋:Ctrl+Shift+\

添加學生 :帶一個參數的方法

顯示學生信息 無參

按區間查詢學生信息  3個參數()

修改學生信息   2個參數(String oldName,String newName)

數組做爲參數

對象(自定義類型做爲參數)

wps9901.tmp

wps9902.tmp

Null是不能調用它的任何屬性和方法的

若是包a中有一個類Student,想要在包b中使用Student類,必須加上導包語句

Import a.Student;

wps9913.tmpwps9924.tmpwps9934.tmpwps9935.tmpwps9965.tmp

第十五章 字符串

第十五章 字符串

01.如何定義一個字符串?

  解析:String name="張靚穎";

        String name2=new String("鞏俐");

02.字符串經常使用方法

01.length():返回一個字符串中的字符總個數

       案例:

String word="我愛北京天安門, 我愛中國毛爺爺";

//統計word中的字符總個數

System.out.println("長度是"+word.length());

02.equals():斷定兩個字符串存儲的內容是否一致,若是相同,返回true。

String name="001";

String name2="001";

if (name.equals(name2)) {

System.out.println("equals");

}else {

System.out.println("不相等");

}

//輸出equals

03.equalsIgnoreCase():忽略大小寫。

Scanner input = new Scanner(System.in);

while(true){

System.out.print("請輸入用戶名:");

String name  = input.next();

System.out.print("密碼:");

String mima = input.next();

if(name.equalsIgnoreCase("Tom")&&mima.equals("1234")){

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

}else{

System.out.println("登陸失敗");

}

}

04.toLowerCase():將一個字符串所有轉換成小寫。

05.toUpperCase():將一個字符串所有轉化成大寫。

06.name.conCat(String str):

做用:將str拼接到name變量上,造成一個大字符串返回。

String wordLeft="今天看到不少人都倒下了";

String wordRight="死很容易,活着很難";

String result=wordLeft+wordRight;

//方式二:

String result2=wordLeft.concat(wordRight);

System.out.println(result2);

07.substring(int beginIndex)

  參數:從第幾個位置開始截取,從0開始數,一直街取到字符串結束

  返回值:截取後的內容

案例:

  String name=」中國是一個偉大的國家」;

  String result=name.substring(8);

  Substring(int beginIndex,int endIndex)

參數一:從字符串的第幾個位置開始截取,從0開始數

參數二:截取到第幾個位置結束 ,從1開始數

案例 :

String name="中國是一個偉大的國家,我愛你";

//我想獲得:」我愛你「   "國家"

String result=name.substring(8,10);

System.out.println(result);

08.indexof(「字符串」)獲取一個特定字符串在大字符串中的位置。

  參數:傳入一個字符串

  返回值:傳入的字符串在大字符串中的位置。

案例 :

String name=「yymqqc@126.com」;

Int index=  Name.indexof(」@」);

09.lastIndexof(「要查找的字符串」):返回最後一次出現某個字符串的位置

10.trim():只能移除兩端的空格,中間的空格沒法移除

11.Split(「分割符」)

返回的結果是一個字符串數組

如何定義一個StringBuffer類的對象?

  StringBuffer sb=new StringBuffer;

System.out.println("歡 迎 使 用 迷 你 DVD 管 理 器");

System.out.println("-------------------------------------");

System.out.println("0. 借出排行榜");

System.out.println("1. 新 增 DVD");

System.out.println("2. 查 看 DVD");

System.out.println("3. 刪 除 DVD");

System.out.println("4. 借 出 DVD");

     System.out.println("5. 歸 還 DVD");

System.out.println("6. 退         出 ");

System.out.print("--------------------------------------\n");

System.out.print("請選擇: ");

Scanner input = new Scanner(System.in);

相關文章
相關標籤/搜索