『壹』 java中介面和抽象類以及它們的屬性方法都分別可以用什麼訪問修飾符
【Java介面修飾符是public abstract】
介面就是提供一種統一的」協議」,而介面中的屬性也屬於「協議」中的成員。它們是公共的,靜態的,最終的常量。相當於全局常量。抽象類是不「完全」的類,相當於是介面和具體類的一個中間層。即滿足介面的抽象,也滿足具體的實現。
介面中不可以定義變數即定義的變數前都要加上final修飾,使之成為常量(沒有final修飾的是變數,加上final修飾就會變成常量)。所以介面的屬性默認是public static final 常量,且必須賦初值。
【抽象類】
abstract抽象
1、修飾類時為抽象類,即為概念類,不能實例化;
2、修飾的方法為抽象方法,該方法沒有方法體,必須由子類實現,若沒有實現會報錯;
3、子類若為抽象類,則其中的抽象方法可不實現;
註:抽象類可以沒有抽象方法,但抽象方法所在的類必須為抽象類
『貳』 java里的interface介面類怎麼用
Java不支持多重繼承,即一個類只能有一個父類
為了克服單繼承的缺點,Java使用了介面,一個類可以實現多個介面
介面是抽象方法和常量值定義的集合,是一種特殊的抽象類
介面中只包含常量和方法的定義,沒有變數和方法的實現
介面中的所有方法都是抽象的
介面中成員的訪問類型都是public
介面中的變數默認使用public static final標識(可以在定義的時候不加此修飾,系統默認)
介面通過使用關鍵字interface來聲明
格式:interface 介面的名字
介面體:
介面體中包含常量定義和方法定義兩部分
介面體中只進行方法的聲明,不允許提供方法的實現
方法的定義沒有方法體,且用分號結尾
public interface Runner
{
int ID=1;
void run();
}
介面允許被繼承,可以用extends繼承一個已有的介面
public interface Runner
{
int ID=1;
void run();
}
interface Animal extends Runner
{
void breathe();
}
通過使用implements實現介面中的所有方法
class Fish implements Animal
{
public void run()
{
System.out.println("Fish is swiming");
}
public void breathe()
{
System.out.println("Fish is bubbling");
}
}
如果只需要實現某介面中定義的部分方法,可以通過定義一個抽象類來實現
abstract class LandAnimal implements Animal
{
public void breathe()
{
System.out.println("LandAnimal is breathing");
}
一個類可以繼承一個父類的同時,實現一個或多個介面,extends關鍵字必須位於implements關鍵字之前
class Student extends Person implements Runner
{
……
public void run()
{
System.out.println("The student is Running");
}
……
}
在類中實現介面的方法時,方法的名字、返回類型、參數個數及類型必須與介面中的完全一致
介面中的方法默認是public 的,所有類在實現介面方法時,一定要用public來修飾
如果介面的方法的返回類型不是void,則在類中實現該介面方法時,方法體至少要有一個return語句
如果是void類型,類體除了兩個大括弧以外,可以沒有任何語句
Java中提供的介面都在相應的包中,通過引入包可以使用Java提供的介面,也可以自己定義介面
一個Java源文件就是由類和介面組成的
介面可以增加很多類都需要實現的功能,不同的類可使用相同的介面,同一個類也可實現多個介面
介面只關心功能,並不關心功能的具體實現,使用相同介面的類不一定有繼承關系
public介面:介面聲明時,關鍵字interface前面加上public關鍵字,可以被任何一個類使用
友好介面類:一個介面不加修飾,友好介面可以被同同一包中的類使用,轉載,僅供參考。
『叄』 Java中同一個類下一個方法怎樣訪問另一個方法下的變數
方法的變數屬於局部變數。也就是說方法中的變數是只有這個方法在調用時候才會分配內存的,而且當這個包含(你說的這個需要在下一個方法中訪問的變數)的變將會隨著方法的結束而死亡。也就是說方法中的變數是不可以在其它方法中訪問的,它們屬於不同棧幀中
你只能蔣這個變數聲明為此類的一個成員變數。
classA{
inta;
publicvoidfun1(){
intp=a;
簡冊寬姿手}
攔亮publicvoidfun2(){
intc=a;
}
}
這樣此類中的每個方法都可以訪問變數a了。
總結:變數的作用域:局部變數和成員變數的作用范圍。自己學吧。
『肆』 (java)什麼類變數什麼是對象變數如何訪問這兩類變數。
類變數就是指類里用static修飾的變數(static不能修飾方法變數).
對象變數是指一般的實例變數,也就是不用static修飾的變數。
以上說的變數都不是指方法變數。
訪問類變數不需要初始化一個對象去訪問,直接用「類名.變數名」的方式就可以訪問,當然也可以用「實例對像.變數名」的方式訪問,但類叢告襪其實還是按滲激友斗類名.變數名的方式去轉換訪問。
訪問對象變數就用「實例變數.變數名」的方式去訪問。
『伍』 Java如何調用其他類里的變數
有2種方式
第一種,直接把類中變數定義成public
比如:
publicclassA{
publicvoidchangeA(){
Bb=newB();//實例化B類
b.a=2;//這里直接訪問B類中的變數專屬A
}
}
publicclassB{
publicinta=0;//定義一個public變數
}
第二種,通過get,set方式訪問變數
publicclassA{
publicvoidchangeA(){
Bb=newB();//實例化B類
b.setA(2);//這里設置B類中的變數A
b.getA();//獲取B類中A的值
}
}
publicclassB{
privateinta=0;//定義一個private私有變數
publicvoidsetA(inta){//定義set方法,設置變數A的值
this.a=a;
}
publicintgetA(){//定義get方法,獲取變數A的值
returnthis.a;
}
}
『陸』 在Java介面的實現類中如何調用這個介面中定義的變數
class A{int num=10;
public int getNum() {
return num;
}
} //定義父類
interface B {int num=1;} //定義介面
public class C extends A implements B{
public static void main(String[] args){
C c=new C();
System.out.println(c.getNum());
System.out.println(B.num);
}
}
因為介面裡面的i是常量,就如樓上的所說,
你要訪問版,權因為隨便哪個在介面里的常量
都是靜態的,可以通過類名即B.num調用,而
在類裡面定義的就不同,你可以專門寫一個方法
來取值!你想直接調用介面和類中的同名num是
做不到的!
『柒』 Java中同一個類下一個方法怎樣訪問另一個方法下的變數深圳
在java中,一個方法中式不能夠訪問另一個方法中定義的變數的!
為什麼?其實在java中,變數按照作用域主要分為兩種:全局變數和具備變數!全局變數一般都是類的屬性!局部變數一般都是寫在方法中或者寫在其他語句塊中(如:循環語句塊和switch語句塊等)。
作為局部變數,他的作用域(或者說使用范圍)僅僅只是在於,當前變數被定義的位置一直到這個變數所在語句塊中的最後(也就是"}"所在位置)。
也就是說,在一個方法中定義的變數,僅僅只能在這個方法中才能盯禪夠正常使用!在別的方法中是無法直接使用的!
所以,就你這個問題,給你一個解決辦法,將這個變數設成一個屬性!讓這個變數成為一個全局的存在!
這樣的話,你就能在這個類的方法中使用這個變數了!
友情提示纖漏一下:如果想直接在main函數中用(實際上也就是在使用的static修飾的方法中用),這個屬性頁必須被定義成static的!關於這個,你可以去看看static的用法!
大概知道你的意思了,你是想在不同的方法中對sql進行包裝,然後通過統一的方式獲得包裝後的sql語句,而且這些sql語句之間還不能有影響!
其實,想法雖然是好的,但是實現起來可能會比較有難度!你去思考一個問題,你在getsql()方法中,如何設定邏輯,才能夠自由的去調用你所寫的public List search_sim(String condition)的其它方法?
而且,假使你能夠實現,在一個方法中調用其他方法中定義的變數還是不現實的!毀則爛要麼把這個變數定義為全局的,要麼把這個sql語句乾脆設定為這個方法的返回值!
Θ
『捌』 java如何訪問類的成員變數和方法
成員變數和方法分為靜態和實例變數和方法x0dx0a例如定義一個類:x0dx0aclass Textx0dx0a{x0dx0a public static int number;x0dx0a public int temp;x0dx0a public static void method(){}x0dx0apublic void method2(){}x0dx0a}x0dx0a如果你想訪問temp屬性,你枯答就必須先創建一個Text的對象,才能訪問:Text b = new Text();x0dx0ab.temp;這就是實例成員變沒敬慧量。實例變數也是一樣x0dx0a而你想 訪問number的話,不用創建Text的實例就可以訪問,就像這樣:Text.number.這就是類成員稿扮變數。實例方法也是一樣x0dx0a主要區別就是訪問是需不需要創建對象,而對於類成員變數,所有對象是共享一個變數的。
『玖』 在Java類中對變數或方法的訪問有哪些訪問控制的關鍵字他們各有什麼作用,舉例說明。
java類聲明的完整格式 [public][abstract|final]class ClassName[extends SuperClassName][implements InterfaceNameList]{……}
其襪中中修飾符public表示任意類均可以訪問這個類,如果沒有public,則只有與該類定義在同一個包中的類才可以訪問這個類。abstract表示這個類是個抽象類。final表示無法被任何人繼承的,那也就意味著此類在一個繼承樹中是一個葉子類,並且此類的設計已被認為很完美而不需要進行修改或擴展。extends關鍵詞表示類繼承了以SuperClassName為類名的父類,implements關鍵詞表示類實現了InterfaceNameList中列出的各個介面。
java變數的完整的聲明格式 [public|protected|private][static][final][transient][volatile]type varibleName;
其中修飾符public表示該方法沒有訪問限制,protected只能被自身或者子類(在同一個包或不在同一個包)以及同一個包下的其他類可以訪問到,private只能被自身訪問。如果不加任何許可權限定成員則是默認訪問許可權default,即只能被和這個類在同一個包中的亮中類訪問。訪問許可權時在類級別上的而不是對象級別。static表示這個變數時類變數3中初始化方法方法一:在聲明中賦值 方法二:在構造函數中賦值方 法三:初始化塊 。final表示這個變數一旦被初始化便不可改變,這里不可改變的意思對告鍵山基本類型來說是其值不可變,而對於對象變數來說其引用不可再變。其初始化可以在兩個地方,一是其定義處,也就是說在final變數定義時直接給其賦值,二是在構造函數中。這兩個地方只能選其一,要麼在定義時給值,要麼在構造函數中給值,不能同時既在定義時給了值,又在構造函數中給另外的值。transient用來聲明一個暫時性變數,在默認情況下,類中所有變數都是對象永久狀態的一部分,當對象被保存到外存時,這些變數必須同時被保存,用transient限定的變數指示JAVA虛擬機,該變數並不屬於對象的永久狀態,從而不能被永久存儲。volatile修飾的變數,在被多個線程共享時,系統將採取更優化的控制方法提高線程並發控制方法提高線程並發效率。
java方法的完整的聲明格式[<accessLevel>][static][final|abstract][native][synchronized]<return_type><name>([<argument_list>])[throws<exception_list>]{<block>}
其中accessLevel與成員變數相同。static限定它為類方法,而實例方法不需要static限定詞。abstract表明方法時抽象方法,沒有實現體。final指明方法布恩能夠被重寫。native表示方法用其他語言實現。synchronized用來控制多個並發線程對共享數據的訪問。throws<exception_list>表示可能拋出的異常。
『拾』 JAVA中的介面中,public static final 變數,能被使用該介面的類訪問嗎如果能,
當然能啊,介面是對外定棗野義的統一規范,常量當然要定義為final!含含!如果能被實現凳老喊他的類改來改去的,還叫規范嗎?