java邏輯代碼塊是指使用{}大括號內(nèi)的代碼片段,為了實現(xiàn)某種邏輯和主類區(qū)分開來的一段代碼。分為靜態(tài)代碼塊、普通代碼塊,示例如下:
創(chuàng)新互聯(lián)公司擁有一支富有激情的企業(yè)網(wǎng)站制作團隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十多年,專業(yè)且經(jīng)驗豐富。十多年網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為超過千家中小企業(yè)提供了成都網(wǎng)站建設(shè)、網(wǎng)站制作解決方案,按需網(wǎng)站建設(shè),設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費網(wǎng)站維護!
/**
*?靜態(tài)代碼塊先于構(gòu)造器執(zhí)行?普通塊先于構(gòu)造塊??只執(zhí)行一次
*?凡是靜態(tài)的與對象無關(guān),先于對象存在的;?凡是靜態(tài)的都是共享的
*
*/
public?class?Test?{
static?{//靜態(tài)代碼塊
System.out.println("static");
}
{
System.out.println("普通塊2");
}
public?Test()?{
System.out.println("構(gòu)造器");
}
方法/步驟
什么是if 選擇結(jié)構(gòu)呢?
if選擇結(jié)構(gòu)是根據(jù)條件判斷之后再做處理的一種語法結(jié)構(gòu),語法結(jié)構(gòu)如下:
if(條件) {
代碼塊 //條件成立后要執(zhí)行的代碼,可是一條語句,也可以是一組語句
}
public class Demo {
public static void main( String [] main) {
//語句1
//語句2
if ( 條件) {
//語句3
}
//語句4
}
}
如何使用if選擇結(jié)構(gòu):
1.基本的if選擇結(jié)構(gòu);舉例::
這里輸入張浩的成績后,通過判斷得知是否大于98分,若大于98,則會輸出“老實說:不錯,獎勵一個Mp3”,否則,不會輸出這句話,通過這個簡單的例子可以體會到,if選擇結(jié)構(gòu)先判斷后執(zhí)行!
復(fù)雜的if選擇結(jié)構(gòu):
如下
怎么連接問題中的條件,
張浩java成績98分 并且張浩音樂成績80分
張浩java成績==100分 并且 張浩音樂成績70分
提出條件,是否可以如下的編寫:
score198score280||score1==100score270
( score198score280(||(score1==100score270)
其中score表示張浩的java成績score表示張浩的音樂成績
顯然第二種方法更是可以清楚的描述張浩的成績!
使用if-else結(jié)構(gòu): 如果張浩java成績大于98分,那么老實獎勵他一個Mp4,如果張浩的成績小于呢! 那么老師就要責(zé)罰他嘍!
實現(xiàn)如下代碼功能:提現(xiàn)if-else結(jié)構(gòu):
多重if選擇結(jié)構(gòu):
多重if選擇結(jié)構(gòu)不是多個基本的if選擇結(jié)構(gòu)簡單的排列在一起,它的形式具體如下:
if(條件1){
代碼塊1
}else if(條件2){
代碼塊2
}else{
代碼塊3
}
多重if程序如何執(zhí)行呢!首先,程序判斷條件1,如果成立,則執(zhí)行代碼塊1,然后直接跳出這個多重if選擇結(jié)構(gòu),執(zhí)行它后面的代碼。這種情況下,代碼塊2和代碼塊3都不會被執(zhí)行,如果條件1不成立,則判斷條件2,如果條件2不成立就直接執(zhí)行條件3!
一下運行結(jié)果提現(xiàn) 多重if循環(huán)的判斷過程:
int score = 70; //考試成績
if (score = 80 ) {
System.out.println("良好");
} else if (score = 60 ) {
System.out.println("中等");
} else {
System.out.println("差");
嵌套if選擇結(jié)構(gòu):
嵌套if選擇結(jié)構(gòu)就是在if選擇結(jié)構(gòu)里面在嵌人if選擇結(jié)構(gòu):
if(條件1){
if(條件2){
代碼塊1
}else{
代碼塊2
}
}else{
代碼塊3
}
實現(xiàn)嵌套if選擇結(jié)構(gòu)運行代碼程序:
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("請輸入比賽成績:");
double score= input.nextDouble();
System.out.print("請輸入性別:");
String gender = input.next();
if(score=10){
if(gender.equals("男")){
System.out.print("進入男子組決賽組!");
}else if(gender.equals("女")){
System.out.print("進入女子決賽組!");
}
}else{
System.out.print("淘汰!");
}
}
}
順序執(zhí)行,就是正常情況下
選擇執(zhí)行(分支),就是用if else...可以使用多次,還有個switch? case
循環(huán)執(zhí)行,常用的用for循環(huán),while循環(huán),do while循環(huán)
就我理解題意好像就這三種
在Java語言中,static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,但是Java語言中沒有全局變量的概念。
被static修飾的成員變量和成員方法獨立于該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享。只要這個類被加載,Java虛擬機就能根據(jù)類名在運行時數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。因此,static對象可以在它的任何對象創(chuàng)建之前訪問,無需引用任何對象。
用public修飾的static成員變量和成員方法本質(zhì)是全局變量和全局方法,當(dāng)聲明它類的對象時,不生成static變量的副本,而是類的所有實例共享同一個static變量。
static變量前可以有private修飾,表示這個變量可以在類的靜態(tài)代碼塊中,或者類的其他靜態(tài)成員方法中使用(當(dāng)然也可以在非靜態(tài)成員方法中使用),但是不能在其他類中通過類名來直接引用,這一點很重要。實際上你需要搞明白,private是訪問權(quán)限限定,static表示不要實例化就可以使用,這樣就容易理解多了。static前面加上其它訪問權(quán)限關(guān)鍵字的效果也以此類推。
static修飾的成員變量和成員方法習(xí)慣上稱為靜態(tài)變量和靜態(tài)方法,可以直接通過類名來訪問,訪問語法為:
類名.靜態(tài)方法名(參數(shù)列表...)
類名.靜態(tài)變量名
用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(JVM)加載類時,就會執(zhí)行該代碼塊(用處非常大)。
static在Java語言中的使用有四種:(變量、方法、代碼塊、內(nèi)部類)
1、static變量
按照是否靜態(tài)的對類成員變量進行分類可分兩種:一種是被static修飾的變量,叫靜態(tài)變量或類
變量;另一種是沒有被static修飾的變量,叫實例變量。
兩者的區(qū)別是:
對于靜態(tài)變量在內(nèi)存中只有一個拷貝(節(jié)省內(nèi)存),JVM只為靜態(tài)分配一次內(nèi)存,在加載類的過
程中完成靜態(tài)變量的內(nèi)存分配,可用類名直接訪問(方便),當(dāng)然也可以通過對象來訪問(但是這是不推薦的)。
對于實例變量,沒創(chuàng)建一個實例,就會為實例變量分配一次內(nèi)存,實例變量可以在內(nèi)存中有多個拷貝,互不影響(靈活)。
2、靜態(tài)方法
靜態(tài)方法可以直接通過類名調(diào)用,任何的實例也都可以調(diào)用,因此靜態(tài)方法中不能用this和super關(guān)鍵字,不能直接訪問所屬類的實例變量和實例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態(tài)成員變量和成員方法。因為實例成員與特定的對象關(guān)聯(lián)!這個需要去理解,想明白其中的道理,不是記憶?。?!
因為static方法獨立于任何實例,因此static方法必須被實現(xiàn),而不能是抽象的abstract。
3、static代碼塊
static代碼塊也叫靜態(tài)代碼塊,是在類中獨立于類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時會執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現(xiàn)的先后順序依次執(zhí)行它們,每個代碼塊只會被執(zhí)行一次。