java如何被調用
Ⅰ java 內部類如何被外部類調用
首先,你要搞清楚靜態方法跟非靜態方法的區別:
非靜態方法是跟隨著類的生命周期的,當類實例化時,非靜態方法跟隨著實例化對象產生,實例化對象可以調用類中的非靜態方法,當實例化對象結束時,非靜態方法也跟著結束。就是說,非靜態方法是依附於實例化對象的,它的生命周期就是實例化對象的生命周期。
靜態方法是不受制於類的實例化對象的,即靜態方法從程序開始運行到最後釋放內存結束是一直存在的,它的生命周期就是程序的生命周期。
從以上可知,靜態方法調用非靜態方法會造成一個問題,就是生命周期的不一致,比如說:程序剛剛開始運行時,類的實例化構造函數還沒有執行,這時靜態方法是調用不了非靜態方法的;或者當實例化對象消亡之後,靜態方法也是不能夠去調用非靜態方法的。
靜態方法要想調用非靜態方法,必須要通過實例化對象去調用;當然也可以把非靜態方法變成靜態方法,這樣就不存在任何障礙了。
希望我的回答對你能夠有所幫助。
Ⅱ java怎麼調用方法
抽象類: 動物 有方法 cry();
具體類1: 貓 extends 動物 實現方法cry()
具體類2: 狗 extends 動物 實現方法cry()
動物 dog = new 狗();
動物 cat = new 貓();
cat.cry();//結果是喵喵~ 叫
dog.cry();//結虹是旺旺~ 叫
由於dog是new 出來的是狗 而cat是new出來的貓,所以雖然大家都屬於動物,但其實不是同一種動物。 並且想讓狗學貓叫,貓學狗叫是不可能的
動物 dog=new 狗(); 其實相當於理解成以下兩條語句
1。狗 dg = new 狗();
2。動物 dog=(動物)dg;//將dg的狗類型轉化成了動物類型
所以調用時當然只會調用狗的方法旺旺旺,而不會去調用其它動物的方法!
所以問題的關鍵在於生成時是 new 狗還是new 貓! 因為動物是不能被new出來的(抽象類不能實例化)所以我們就能分出執行的是哪個方法;
請參考
Ⅲ java中的兩個類怎麼調用
Java要互相調用類,可以舉個簡單的例子,用公司類和職員類來說。用了中文的變數:
publicClass職員類
{
String職員姓名;
int年齡;
公司類所在公司;
}
publicClass公司類
{
String公司名;
List<職員類>旗下員工;//把員工類的員工作為集合存入當前類的對象
publicvoid招聘員工(職員類招聘對象)
{
旗下員工.add(招聘對象);
招聘對象.所在公司=this;
}
}
//這樣這兩個類的對象就會互相滲透,
在實例化的時候:
公司類 ms=new 公司類();
職員類 bill=new 職員類();
ms.公司名="微軟";
bill.職員姓名="比爾蓋茨";
bill.年齡=50;
ms.招聘員工(bill);
System.out.println(bill.所屬公司.公司名);
System.out.println(ms.旗下員工[0].職員姓名);
//會列印出來微軟和比爾蓋茨。
Ⅳ java中的方法都有哪些,什麼時候被調用,怎麼調用他們 這些我都分不清楚,老是記不住,調用的時候
方法根據需要來建立,
//方法1
public void system{
//在這里編寫方法
//方法根據具體的需求來寫,比如
System.out.println("這個就是方法");
}
調用:
方法可以互相調用,比如
//方法2
public void sc{
System.out.println("下面這句話是上一個方法中的");
//調用方法1
system();
}
"system();"就表示在方法2裡面調用了方法1
至於什麼時候用也看需求,
Ⅳ java中方法調用時的寫法
如果是非靜態的方法1調用非靜態的方法2,那麼
非靜態方法2所在類的實例引用.非靜態方法2
public class Test{
public void getMethod(){
Test t=new Test();
t.getTwoMethod();
}
public void getTwoMethod(){
}
}
如果靜態調用靜態:
public class Test{
public static void main(String[]args){
Hello();
}
public void Hello(){
System.out.println("HELLOWORLD")
}
}
如果是繼承的話:
public class a{
public void jj(){}
}
public class b extends a {
public void hh(){
super.jj();
}
}
Ⅵ java中方法之間是如何調用的
1.與其他語言不同,Java語言不允許編程人員選擇採用值傳遞還是引用傳遞來傳遞參數。基本數據類型總是採用值傳遞。不能把對象傳遞給方法,而只能傳遞對象的引用。引用本身也是採用值傳遞將引用的拷貝傳遞給方法。當方法收到對象的應用後,他就可以直接操作這個對象。
2.當通過return語句從方法返回信息時,基本數據類型的變數總是以值的形式返回(即返回拷貝),而對象總是以應用的方式返回。
方法調用過程:
1.為調用方法的內存中開辟空間。
2.將實參傳遞給形參。
3.程序流程跳轉到方法里,並執行方法。
4.執行完方法,程序流程跳轉到main方法,帶回返回值如果有的話,為方法開辟的空間被銷毀。
列如:
publicclassTest{
publicstaticvoidmain(Stringargs[]){
inta=10,b=20;
Stringstr1="abc";
Stringstr2="def";
swap(a,b);
swap(str1,str2);
System.out.println(a+"/t"+b);
System.out.println(str1+"/t"+str2);
}
publicstaticvoidswap(inta,intb){
inttemp=a;
a=b;
b=temp;
}
publicstaticvoidswap(Stringstr1,Stringstr2){
Stringtemp=str1;
str1=str2;
str2=temp;
}
}
結果:
1020
abcdef
注意結果中整型和字元串都沒有交換。
Ⅶ java中如何調用類
import java.util.
class Person{
// 創建Persion類
String name ; // 表示姓名
int age ;
public Person(String name,int age){
this.name=name;
this.age =age;
} // 表示年齡
public void tell(){
System.out.println("姓名:" + name + ";年齡:" + age) ;
}
};
public class test{
public static void main(String args[]){
Person per = new Person("zhang san",3) ;//實例化類
per.tell();//只有調用實例類的成員
}
};
-----------------------------------------------------------
列印結果 姓名:zhang san 年齡:3
Ⅷ java中如何調用私有變數或方法
private關鍵字
(1)私有的意義,可以修飾成員變數和成員方法
(2)特點:
被private修飾的後的成員只能在本類中被訪問
(3)private的應用:
以後再寫一個類的時候:
把所有的成員變數給private了
提供對應的getXxx()/setXxx()方法
/*
封裝和private的應用:
A:把成員變數用private修飾
B:提高對應的getXxx()和setXxx()方法
*/
//定義學生類
class Student {
//姓名
private String name;
//年齡
private int age;
//姓名獲取值
public String getName() {
return name;
}
//姓名設置值
public void setName(String n) {
name = n;
}
//年齡獲取值
public int getAge() {
return age;
}
//年齡賦值
public void setAge(int a) {
age = a;
}
}
//測試類
class StudentTest {
public static void main(String[] args) {
//創建學生對象
Student s = new Student();
//使用成員變數
//錯誤:被私有修飾了,外界不能直接訪問了
//System.out.println(s.name+"---"+s.age);
System.out.println(s.getName()+"---"+s.getAge());
//給成員變數賦值
//s.name = "林青霞";
//s.age = 27;
//通過方法給賦值
s.setName("林青霞");
s.setAge(27);
System.out.println(s.getName()+"---"+s.getAge());
}
}