同一个包中的类能够直接使用,直接用类名点调用其中的方法java
调用本类中的静态方法能够直接用方法名就能够编程
例如:code
public static void main(String[] args){ a(); } public static void a(){ System.out.println("我是一个静态方法"); }
调用同一个包中的另外一个类中的静态方法,须要用类名点方法名进行调用对象
public static void main(String[] args){ xuexi.b(); }
调用同一个包中的另外一个类中的非静态方法,须要new一个该类的对象,用对象调用他的方法继承
例如:面向对象编程
public static void main(String[] args){ //对象类型 对象名 = 对象值 xuexi xuexi = new xuexi();//new了xuexi类的对象 xuexi.b();//对象调用方法 }
调用本类中的非静态方法,也须要new一个本类的对象,用对象进行调用模板
例如:class
public class lianxi1 { public static void main(String[] args){ //对象类型 对象名=对象值 lianxi1 name = new lianxi1(); name.a(); } public void a(){ System.out.println("我是一个静态方法"); } }
注意:引用
静态方法是不能调用非静态方法的,由于静态方法是和类一块儿加载的,而非静态方法建立对象后才存在,因此他们有时间差,静态方法出现的时候非静态方法尚未出现呐方法
除了这种状况,其余状况的方法调用方法都是能够的
例如:
public static void i(){ a();//掉不出来a方法,由于a是非静态方法 }
举例说明:
public static void main(String[] args){ int a=1; xx(a);//a执行力此方法后a的值还为1,a只是给这个方法进行了传值,并无将a自己传给方法,这就是值传递 System.out.println(a); } public static void xx(int a){ a=10; }
举类说明:
public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);//输出为空 Demo05.change(person); System.out.println(person.name);//输出对象,这就是引用传递 } public static void change(Person person){ person.name="对象"; } static class Person{ String name; } }