Java類和對(duì)象習(xí)題及詳細(xì)答案解析
廢話不多說(shuō),例題:
習(xí)題一:

局部變量必須初始化:編譯不能通過(guò)
習(xí)題二:

首先hello方法是一個(gè)靜態(tài)成員方法(類方法)(不依賴于對(duì)象):
并且在main方法里面本來(lái)就可以直接調(diào)用,但要你非要初始化也沒(méi)關(guān)系,就算是沒(méi)初始化成功也沒(méi)關(guān)系,畢竟靜態(tài)方法不依賴于成員變量
你用引用調(diào)用(test.hello)合法但是不合理(最后你還是編譯通過(guò)了)
但是如果hello沒(méi)有用static修飾可就錯(cuò)了,畢竟你沒(méi)有實(shí)例化一個(gè)對(duì)象出來(lái)
習(xí)題三:
.import static 能夠?qū)胍恍╈o態(tài)方法
import static java . lang . Math . * ;
public class Test {
public static void main ( String [] args ) {
double x = 30 ;
double y = 40 ;
// 靜態(tài)導(dǎo)入的方式寫(xiě)起來(lái)更方便一些 .
// double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)) ;這樣很爽,但是這樣的代碼要少寫(xiě)
double result = sqrt ( pow ( x , 2 ) + pow ( y , 2 ));
System . out . println ( result );
}
}習(xí)題四:
以下代碼在編譯和運(yùn)行過(guò)程中會(huì)出現(xiàn)什么情況?
會(huì)先執(zhí)行構(gòu)造方法,將88的值,賦值給count,所以最終輸出的值是88.
public class TestDemo{
private int count;
public static void main(String[] args) {
TestDemo test=new TestDemo(88);
System.out.println(test.count);
}
TestDemo(int a) {
count=a;
}
}習(xí)題五:
cnt的值?
答:5
public class Test{
static int cnt = 6;
static{
cnt += 9;
}
public static void main(String[] args){
System.out.println("cnt = " + cnt);
}
static{
cnt /=3;
};
}本題考察的是代碼塊的執(zhí)行順序。帶代碼中存在代碼塊和構(gòu)造方法的時(shí)候。執(zhí)行順序?yàn)椋?/p>
1.靜態(tài)代碼塊
2.實(shí)例代碼塊
3.調(diào)用的對(duì)應(yīng)的構(gòu)造方法
第2種情況:當(dāng)存在相同類型的代碼塊和成員變量的時(shí)候,需要看定義順序執(zhí)行。
習(xí)題六:
結(jié)果?
aaabbb
class Test{
public String toString() {
System.out.print("aaa");
return "bbb";
}
}
public static void main(String[] args) {
Test test = new Test();
System.out.println(test);
}在執(zhí)行println函數(shù)的時(shí)候,會(huì)調(diào)用Object類的toString方法,此時(shí)當(dāng)我們自己類重新通過(guò)編譯器實(shí)現(xiàn)了toString方法之后,會(huì)調(diào)用我們自己寫(xiě)的方法。
我們自己寫(xiě)的是返回“bbb”,先打印aaa,然后返回打印“bbb”
習(xí)題七:
結(jié)果?
答:102
public class HasStatic {// 1
private static int x = 100;// 2
public static void main(String args[]) {// 3
HasStatic hsl = new HasStatic();// 4
hsl.x++;// 5
HasStatic hs2 = new HasStatic();// 6
hs2.x++;// 7
hsl = new HasStatic();// 8
hsl.x++;// 9
HasStatic.x--;// 10
System.out.println(" x=" + x);// 11
}
}1.X是類變量,只有一份,所以說(shuō)我們每次調(diào)用都會(huì)改變X的值,所有對(duì)x的操作針對(duì)的都是同一份。
2.靜態(tài)成員變量的訪問(wèn)需要通過(guò)類名訪問(wèn),這是正確的訪問(wèn)方式。本題中雖然使用了對(duì)象引用訪問(wèn),但是不會(huì)報(bào)錯(cuò),我們不建議這樣訪問(wèn),但不是錯(cuò)誤,所以,不會(huì)編譯報(bào)錯(cuò)
那大家看看這個(gè)代碼結(jié)果是什么?
class Test1 {
public int count;
public Test1(int a){
this.count = a;
}
public Test1(){
}
}
public class Test {
public static void main(String[] args) {
Test1 test = new Test1(88);
System.out.println(test.count);
Test1 test1 = new Test1(77);
System.out.println(test1.count);
Test1 test2 = new Test1();
System.out.println(test2.count);
}
}
結(jié)果:

習(xí)題八:
編譯運(yùn)行的結(jié)果?
public class Pvf{
static boolean Paddy;
public static void main(String args[]){
System.out.println(Paddy);
}
}Passy類變量也是成員變量的默認(rèn)賦值規(guī)則:
在Java當(dāng)中,成員變量沒(méi)有賦初值的時(shí)候,會(huì)有默認(rèn)的初始值。基本類型是對(duì)應(yīng)的0值。如:int是0,boolean是false,char類型是'\u0000',引用類型是null,如String。
習(xí)題九:
下述代碼運(yùn)行的結(jié)果是什么?
public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}Java里面局部變量不能被static修飾!??!
在一個(gè)類中,在方法當(dāng)中定義的變量是局部變量,而靜態(tài)的變量屬于類變量。隨著類的加載而被創(chuàng)建,而局部變量是調(diào)用該方法的時(shí)候才創(chuàng)建的。
所以,此時(shí)兩種變量的性質(zhì)是沖突的。程序會(huì)報(bào)編譯時(shí)異常

總結(jié)
到此這篇關(guān)于Java類和對(duì)象習(xí)題及詳細(xì)答案解析的文章就介紹到這了,更多相關(guān)Java類和對(duì)象習(xí)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot如何使用Map將錯(cuò)誤提示輸出到頁(yè)面
這篇文章主要介紹了Springboot如何使用Map將錯(cuò)誤提示輸出到頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)超詳細(xì)教程
這篇文章主要介紹了一個(gè)簡(jiǎn)單的Java學(xué)生信息管理系統(tǒng),使用ArrayList集合存儲(chǔ)學(xué)生對(duì)象信息,并實(shí)現(xiàn)了添加、刪除、修改和查看學(xué)生信息的功能,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
Spring?Cloud灰度部署實(shí)現(xiàn)過(guò)程詳解
這篇文章主要為大家介紹了Spring?Cloud灰度部署實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
spring mvc 讀取xml文件數(shù)據(jù)庫(kù)配置參數(shù)的方法
下面小編就為大家?guī)?lái)一篇spring mvc 讀取xml文件數(shù)據(jù)庫(kù)配置參數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
mybatis整合ehcache做三級(jí)緩存的實(shí)現(xiàn)方法
ehcache是一個(gè)快速內(nèi)存緩存框架,java項(xiàng)目里用起來(lái)很方便,下面這篇文章主要給大家介紹了關(guān)于mybatis整合ehcache做三級(jí)緩存的實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Spring MVC配置雙數(shù)據(jù)源實(shí)現(xiàn)一個(gè)java項(xiàng)目同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的方法
這篇文章主要給大家介紹了關(guān)于Spring MVC如何配置雙數(shù)據(jù)源實(shí)現(xiàn)一個(gè)java項(xiàng)目同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05

