zoukankan      html  css  js  c++  java
  • [java]静态方法访问非静态方法的方法

    是不是是有点拗口哈,在刚开始的开发中,经常会碰到"无法访问非静态方法",如下:

    Test.java

     public Test{
       public void notStatic(){
        System.out.println("我访问了非静态方法");
        }
       public static void main(String[] args){
        notStatic();//错误,无法访问
        }
    }
    

    解决办法有二:

    一 、设置其为静态方法

    //加入 static
    public static void notStatic(){
        System.out.println("我访问了非静态方法");   
         }
    

    二、new 对象 引用方法

    并不是什么时候都可以设置其为静态方法,比如安卓开发中findViewById只能在非静态方法中调用,那怎么办呢.很简单,new对象引用。

    Test.java

     public Test{
       public void notStatic(){
        System.out.println("我访问了非静态方法");
        }
       public static void main(String[] args){
        //notStatic();//错误,无法访问
        Test test = new Test();
        test.notStatic();  //引用
        }
    }
    

    关于 static

    此部分文章原文链接:JAVA菜鸟入门篇 - static关键字 (十三)
    static方法
      static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。

      但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

  • 相关阅读:
    CodeForces gym Nasta Rabbara lct
    bzoj 4025 二分图 lct
    CodeForces 785E Anton and Permutation
    bzoj 3669 魔法森林
    模板汇总——快读 fread
    bzoj2049 Cave 洞穴勘测 lct
    bzoj 2002 弹飞绵羊 lct裸题
    HDU 6394 Tree 分块 || lct
    HDU 6364 Ringland
    nyoj221_Tree_subsequent_traversal
  • 原文地址:https://www.cnblogs.com/zzerx/p/12289821.html
Copyright © 2011-2022 走看看