其实很简单的,说到底,就是因为他们的生存周期不一样。对于一个类,他有类成员(用static修饰的)和普通成员(没有static修饰的,也成为实例成员)。 那么,类成员和一个类的生存时间是一样的;而实例成员,只有当这个对象被实例出来,那么,这个成员才开始使用,一直当这个对象被JVM回收了,这个成员也会随之消失。而这个时候,类成员还存活着。鉴于你初学,一些底层东西我不多讲。 现在就回答你的问题 1、因为他们生存周期不一样 2、静态方法中不能访问非静态方法,必须是实例化了一个对象,然后通过对象访问这个非静态方法,那么当这个对象挂了得时候,他的方法自然就挂了。当然,非静态方法可以访问静态方法。 3、类成员和实例成员,其实和函数中的全局变量和局部变量一样,把那些常用的,我们可以声明为类成员,典型的就是main()方法,而不常用的,就整成实例成员。也就是说,类成员作用范围要实例成员范围广。 一个简单的代码 public People{ private String name; private int age; private voidsay(){ System.out.println("我是: "+name+" 年龄为:"+age); } public People(String name,int age){ this.name=name;this.age=age; } public static void main(String[] args){ People p=new People();p.say();//只有通过这个方法才能调用非静态方法 } }
java基础学习-静态非静态方法的学习
最新推荐文章于 2021-02-27 06:00:41 发布