1、學好基本語法,弄清Java的特點
十載的隆林網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整隆林建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“隆林網(wǎng)站設計”,“隆林網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
學習Java,說白了,就是學習它的語法、功能、結(jié)構(gòu)等。然后按照它的語法編寫代碼。Java語法是學習的根本。開始學習時,可能有些難懂。沒關(guān)系,這很正常。多看多問,多實踐,慢慢的你就入門了。
2、學習編程規(guī)范,編程中堅持遵守
俗話說,無規(guī)矩不成方圓。編程是一個將思維邏輯變?yōu)榇a,讓計算機來執(zhí)行的過程。特別需要規(guī)范。無論是變量、函數(shù)命名還是代碼格式,都需要一致規(guī)范。這樣便于代碼的閱讀和修改。代碼的規(guī)范性,在代碼質(zhì)量中占據(jù)著重要的比重。
3、代碼盡量寫的簡單,易于理解
代碼的簡單性、正確性是最重要的。不要為了追求高效率而寫出晦澀難懂的代碼。后續(xù)閱讀和修改代碼時,你會為晦澀的代碼付出很多代價。記住,盡量將代碼寫成初學 Java就能讀懂的,那么你的代碼就十分的優(yōu)美了。
4、多看別人的代碼
對同一種功能的實現(xiàn),可以有很多種編碼方式。多讀別人的代碼,非常有利用開拓思路,提高編碼的靈活性。甚至經(jīng)常可以從別人的代碼中得到啟發(fā),產(chǎn)生靈感,創(chuàng)作出優(yōu)秀的代碼。
5、選擇一套體系完善的課程
在完善的課程體系中學習非常重要,這有助于你掌握系統(tǒng)的Java編程知識和技能,而且好的課程會幫助你前期打好基礎,后期有針對性地使你快速提升,這對Java新手來說十分有效。
6、沒有捷徑,一定要多動手實踐
學習Java,和學數(shù)學一樣,在學懂理論后,一定要實踐。學習Java不能搭便車。有時候,語法和例子很簡單,很容易看懂,但到自己動手寫的時候,又是另一種感覺。只有多動手編程,哪怕是簡單的小程序,重復實現(xiàn)書上簡單的例子,也是在積累和提高。動手編碼離不開編程工具的支持。
怎么看代碼都不完整,五個大括號就只有一個閉合了。其實也是定義的方法,和普通一般方法不一樣的地方是,很多參數(shù)用final修飾了,就代表賦值一次之后不可變而已,另外,你這里面還用到了不少封裝的方法,你得結(jié)合具體功能去理解,不然只看表面,是搞不清楚業(yè)務邏輯的
這個interface叫接口。這個跟類長的很像的東西其實跟虛基類差不多。里面的成員也都是只聲明不實現(xiàn)。為什么要這樣?
我靠這個問題要說清楚估計得花幾頁紙才夠勁,長話短說吧。
接口其實是用來解決C++里面的多重繼承產(chǎn)生的奇義性和二義性。java和C#都是不允許多重繼承的,也就是說一個類的基類只能有一個,但是可以繼承多個接口,這樣就相當于間接實現(xiàn)了多重繼承。
接口的成員在每個繼承它的類中都是需要去實現(xiàn)的,因為接口本身只聲明,不實現(xiàn)。
所以你的上面的代碼就是定義了一個接口LoginService,然后聲明了一個方法login,有三個參數(shù),返回值是String類型,大概明白了嗎?
用的IDE是Eclipse么?建議用加斷點自己跟蹤調(diào)試,看看循環(huán)里的每一步都干了些什么,如下圖:
你的第一段代碼:
public?static?void?main(String?args[])?{
int?layer?=?4;
for?(int?i?=?1;?i?=?layer;?i++)?{
for?(int?k?=?1;?k?=?layer?-?i;?k++)?{
System.out.print("?");
}
for?(int?j?=?1;?j?=?(i?-?1)?*?2?+?1;?j++)?{
System.out.print("*");
}
System.out.println();
}
int?layer1?=?3;
for?(int?i?=?1;?i?=?layer1;?i++)?{
for?(int?k?=?1;?k?=?(layer1?-?i)?+?1;?k++)?{
System.out.print("?");
}
//這里j++,j會越來越大,死循環(huán)了
for?(int?j?=?5;?j?=?(i?+?1)?*?2?+?1;?j++)?{
System.out.print("*");
}
System.out.println();
}
}
}
第二段代碼:
public?class?Hello{
public?static?void?main(String?args[])?{
int?i1,?j1;
for?(i1?=?1;?i1?=?7;?i1++)?{
for?(j1?=?1;?j1?=?7;?j1++)?{
//循環(huán)體空,不知道你想干什么
}
if?(j1?+?i1?==?5?||?j1?-?i1?==?3?||?i1?-?j1?==?3?||?i1?+?j1?==?11)?{
System.out.print("*");
}?
else?{
System.out.print("");
}
}
System.out.println();
}
}
第三段代碼:
import?java.util.Scanner;
public?class?Hello{
private?int?maxNum;
public?Hello(int?maxNum)?{
this.maxNum?=?maxNum;
}
public?void?print()?{
//第一層for循環(huán),打印maxNum行
for?(int?i?=?1;?i?=?maxNum;?i++)?{
//第二層for循環(huán),每次執(zhí)行i次
for?(int?j?=?1;?j?=?i;?j++)?{
System.out.print(j);
System.out.print("*");
System.out.print(i);
System.out.print("=");
System.out.print(i?*?j);
System.out.print("\t");
}
System.out.println();
}
}
public?static?void?main(String[]?args)?{
System.out.print("錄入一個整數(shù):");
Scanner?input?=?new?Scanner(System.in);
//?沒有考慮判斷輸入的是否是整數(shù)。
int?maxNum?=?input.nextInt();
new?Hello(maxNum).print();
}
}
在網(wǎng)上搜搜Eclipse怎么斷點調(diào)試,你就可以看到每次循環(huán)都干了什么,一一給你解釋太麻煩了。
public static void main(String[] args) {
// TODO 自動生成方法存根
File[] files;
Filter_java fj=new Filter_java(); //這是后面的一個類的對象
boolean hasFiles_java=false; //標識變量
System.out.print("請輸入目錄名:");
Scanner scan=new Scanner(System.in); //接受一個輸入
String str=scan.next(); //讀取輸入的字符串
File Dir=new File(str); //字符串認為是一個路徑
if(Dir.exists()) //如果這個文件夾存在
{
files=Dir.listFiles(); //列出文件夾下所有文件的對象
for(int i=0;ifiles.length;i++) //迭代這些文件
if(fj.accept(files[i])) //通過下面自定義的文件類型過濾器判斷這個文件是不是符合要求的文件
{
hasFiles_java=true; //標識變量設為true
getAndSave(files[i]); //這個..保存
}
if(hasFiles_java) //如果為true
System.out.println("已將所有.java文件成功寫入指定目錄!");
else
System.out.println("該目錄下無.java文件");
}
else
System.out.println("目錄不存在,請重新輸入!");
}
public static void getAndSave(File file_java)
{
try {
File dir=new File("E:\\test"); //要存在這個路徑下
if(!dir.exists())
dir.mkdir(); //如果文件夾不存在則創(chuàng)建
byte[] FileData=new byte[2000]; //緩沖字節(jié)數(shù)組 2000大小
FileInputStream fis=new FileInputStream(file_java); //文件輸入流
FileOutputStream fos=new FileOutputStream("E:\\test\\"+file_java.getName()); //文件輸出流,要創(chuàng)建新文件
while(fis.read(FileData, 0, FileData.length)!=-1) //從原來的文件讀取字節(jié)
fos.write(FileData, 0, FileData.length); //循環(huán)寫入字節(jié)
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Filter_java implements FileFilter //自定義文件過濾器
{
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.getName().endsWith(".java")) //如果文件是java類型的,返回true
return true;
else
return false;
}
代碼是從上到下運行的
一、前面的x已經(jīng)被賦值為整型了,數(shù)據(jù)類型只要賦值一次就行了,所以后面的x都不用賦值了;
二、while(x!=password){
System.out.println("pleas input the password");
x=sc.nextInt();
}
判斷條件是 x != password,只要輸入的數(shù)據(jù)不等于password,也就是20030708,就會一直進入while循環(huán),直到password正確才不進入,然后輸出correct,結(jié)束程序;
三、代碼是從上至下運行的,Scanner sc=new Scanner(System.in)一定是要在int x=sc.nextInt()前面的,因為要先新建一個Scanner類,后面才能引用;
System.out.println("pleas input the password")意思輸出到控制臺,所以順序放哪都行,只是它輸出pleas input the password,提醒你下一步要輸入密碼,放在int x=sc.nextInt()前面起到提醒你輸入的作用;
x = sc.nexInt(),接收鍵盤輸入賦值給x,然后回到while循環(huán)的判斷條件x != password ,如果輸入的不等于20030708,就再重新接收鍵盤輸入,然后重新賦值給x,一直循環(huán),直到x等于20030708才不循環(huán)了;
Scanner是Java中接收鍵盤輸入的一個類;
sc.nextInt, sc 是你新建Scanner類的實例;nextInt是Scanner中的一個方法,意思接收下個輸入的Int類型數(shù)據(jù);sc.nextInt意思是sc這個實例調(diào)用nextInt這個方法
新聞名稱:看不懂的java代碼,java是代碼嗎
鏈接URL:http://jinyejixie.com/article12/dsesogc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、微信小程序、網(wǎng)站維護、企業(yè)建站、網(wǎng)站營銷、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)