标题:关于在静态类调用非静态对象和利用非静态实例变量的问题
只看楼主
邹特强
Rank: 2
等 级:论坛游民
帖 子:123
专家分:85
注 册:2016-9-21
结帖率:85.71%
 问题点数:0 回复次数:3 
关于在静态类调用非静态对象和利用非静态实例变量的问题
程序中表情位置出现编译错误,原因我知道,不用各位解释,只是想知道
1,除了把原来的非静态类改为static还有什么别的方法在静态类里创建非静态对象(当然也除了把静态类改为非静态类。。)吗?
2,限制条件同上,还有什么其它方法在静态类里引用非静态实例变量吗?
package 多态2;

public class Animal
{
    int i;
    public void roar()
    {
        System.out.println("Ruff!");
    }
    public class Dog extends Animal
    {
        public void roar()
        {
          System.out.println("I am a dog!");
          super.roar();//可以在子类方法中利用super引用父类方法
        }
    }
    public static void main(String args[])//这里如果用static ,表示静态方法,则其在类加载时就会分配内存,就是执行到这个类时,同时分配了内存,而类里面还有
    {                  //还有非静态成员,其必须在类的对象产生时才会分配内存,再通过类的对象去访问,也就意味着如果用dog a=new dog(),计算机在内存中找不到dog
        Dog a=new Dog();//定义的变量没有使用
        Animal b=new Animal();
        a.roar();
        System.out.println(i);
    }
}
搜索更多相关主题的帖子: package public 表情 
2017-03-18 23:27
qq807886727
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2017-3-10
得分:0 
设置一个访问内部类的方法,再调用
2017-03-20 13:06
wuzhiwei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-3-20
得分:0 
package 多态2;

public class Animal
{
    int i;
    public void roar()
    {
        System.out.println("Ruff!");
    }
   
    public Object newDog()
    {
        return new Dog();
    }
    public class Dog extends Animal
    {
        public void roar()
        {
          System.out.println("I am a dog!");
          super.roar();//可以在子类方法中利用super引用父类方法
        }
    }
    public static void main(String args[]) throws Exception//这里如果用static ,表示静态方法,则其在类加载时就会分配内存,就是执行到这个类时,同时分配了内存,而类里面还有
    {                  //还有非静态成员,其必须在类的对象产生时才会分配内存,再通过类的对象去访问,也就意味着如果用dog a=new dog(),计算机在内存中找不到dog
        Animal b=new Animal();
        Dog a=(Dog) b.newDog();
        a.roar();
        System.out.println(b.i);
    }
}
2017-03-20 13:56
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
这个九九也知道~static用这个关键字只有一个共用内存空间~这就像C的static关键字一样是静态变量~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-03-21 10:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475234-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085358 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved