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());
}
}