关于本章不完善的一个地方

来源:8-9 Java 中的 static 使用之静态方法

喜之郎多点关心多点爱

2017-11-28 20:41

本章只说了:

1.静态方法可以直接使用 静态变量、静态方法;

               不能直接使用 非静态变量、非静态方法。

2.普通方法可以直接使用 静态变量和非静态变量。

              如何用 静态方法和非静态方法未提及。

那普通方法跟静态方法非静态方法的关系是如何的?

为什么非静态变量、方法, 静态方法不能直接用呢?普通方法比静态方法权限大?


写回答 关注

3回答

  • qq_新一_0
    2017-12-15 09:48:38

    是不能输出,我只是演示在非静态方法中调用静态方法和静态变量。。。。。

  • qq_新一_0
    2017-12-13 17:14:24
    package imooc_1;
    
    import java.util.Arrays;
    
    public class Demo1 {
        static String staticVarible ="静态变量";//静态变量
         String unStaticVarible="普通变量";//普通变量
    
        //静态方法
        public static  void StaticMethod(){
        }
        public void hello(){
    
        }
        //非静态方法
        public  void UnStaticMethod(){
            Demo1 de=new Demo1();
            //调用静态变量
            System.out.println(staticVarible);/*直接调用*/
            System.out.println(Demo1.staticVarible);/*通过类名调用*/
            System.out.println(de.staticVarible);/*通过对象名调用*/
    
            //调用非静态变量
            System.out.println(unStaticVarible);/*直接调用*/
            System.out.println(de.unStaticVarible);/*通过对象名调用*/
            //System.out.println(Demo1.unStaticVarible);/*无法通过类名调用*/
    
            //调用静态方法
            StaticMethod();//直接调用
            de.StaticMethod();//通过对象名调用
    
            //调用非静态方法
             hello();
          de.hello();
        }
    }


    慕移动302...

    你这个程序没有主函数,根本不会运行的(好像主函数是程序运行的入口吧),你放到Eclipse里去运行一下就知道了,我刚刚试过了,根本没有输出的。

    2017-12-13 19:51:02

    共 1 条回复 >

  • 慕移动302234
    2017-11-28 22:05:46

    貌似只有主函数方法才能调用其他方法,而主函数刚好是静态方法,普通成员方法应该是不能调用其他方法的,不管是静态还是非静态,我的理解吧,不知道对不对。


    qq_颜子明... 回复qq_新一_...

    你这说法不对,请看注意第三点。静态方法是可以直接调用print(),非静态才是只能通过对象名调用。

    2018-01-05 18:05:47

    共 2 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530655 学习 · 6091 问题

查看课程

相似问题