java中同一个类中元素的相互关系

更新时间:2018-10-29 18:09:00 点击次数:389次
java中同一个类中元素的相互关系
1.同一类中方法和变量的调用关系
      1.1.在同一个类中只能由方法来调用变量,不能用变量来调用方法。

       1.2.在构造方法中调用变量。

               可以访问本类中的实例变量,默认是this.实例变量名称,可以省略this.  

               可以访问本类中的类变量,默认是类名.类变量名称,可以省略类名,也可以使用this,可以省略this。

               可以访问本方法中的局部变量,只能变量名称访问。

例如:

package com.click369.test.demo1;

public class StudentBean {

    int  stuid=1001; //实例变量

    static  String  stuname="zhangsan"; //静态成员变量[类变量]

    /**

     * 无参数构造方法

     */

    public  StudentBean(){

     System.out.println("构造方法访问实例变量stuid=="+this.stuid);

     System.out.println("构造方法访问实例变量stuid=="+stuid);

     System.out.println("构造方法访问类变量stuname=="+StudentBean.stuname);

     System.out.println("构造方法访问类变量stuname=="+stuname);

     System.out.println("构造方法访问类变量stuname=="+this.stuname);

     char  sex='男';  //局部变量

     //System.out.println("构造方法访问局部变量sex=="+this.sex);

     //System.out.println("构造方法访问局部变量sex=="+StudentBean.sex);

     System.out.println("构造方法访问局部变量sex=="+sex);

}

}

 1.3.实例方法中调用变量

           可以访问本类中的实例变量,默认this.实例变量名称,可以省略this.

            可以访问本类中的类变量,默认是类名.类变量名称,可以省略类名,也可以使用this,可以省略this。

            可以访问本方法中的局部变量,只能变量名称访问。

例如:

package com.click369.test.demo1;

public class StudentBean {

    int  stuid=1001; //实例变量

    static  String  stuname="zhangsan"; //静态成员变量[类变量]

      /**

     * 实例方法

     */

    public  void  testMethod(){

     System.out.println("实例方法访问实例变量stuid=="+this.stuid);

     System.out.println("实例方法访问实例变量stuid=="+stuid);

     System.out.println("实例方法访问类变量stuname=="+StudentBean.stuname);

     System.out.println("实例方法访问类变量stuname=="+stuname);

     System.out.println("实例方法访问类变量stuname=="+this.stuname);

     char  sex='男';  //局部变量

     //System.out.println("构造方法访问局部变量sex=="+this.sex);

     //System.out.println("构造方法访问局部变量sex=="+StudentBean.sex);

     System.out.println("构造方法访问局部变量sex=="+sex);

    }

}

   1.4.类方法【静态方法】中调用变量

              不能出现this关键字。

              不能访问本类中的实例变量。

              可以访问本类中类变量,默认类名.变量名称,可以省略类名。

              可以访问本方法中的局部变量,只能变量名称访问。

例如:

package com.click369.test.demo1;

public class StudentBean {

    int  stuid=1001; //实例变量

    static  String  stuname="zhangsan"; //静态成员变量[类变量]

    /**

     * 类方法【静态方法】

     */

    public  static  void  testStaticMehtod(){

     //System.out.println("类方法【静态方法】访问实例变量stuid=="+this.stuid);

     //System.out.println("类方法【静态方法】访问实例变量stuid=="+stuid);

     System.out.println("类方法【静态方法】访问类变量stuname=="+StudentBean.stuname);

     System.out.println("类方法【静态方法】访问类变量stuname=="+stuname);

     //System.out.println("类方法【静态方法】访问类变量stuname=="+this.stuname);

     char  sex='男';  //局部变量

     //System.out.println("类方法【静态方法】访问局部变量sex=="+this.sex);

     //System.out.println("类方法【静态方法】访问局部变量sex=="+StudentBean.sex);

     System.out.println("类方法【静态方法】访问局部变量sex=="+sex);

    }

}

2.同一类中方法和方法的调用关系
 2.1.构造方法调用其他的方法.

             可以访问本类中其他的构造方法,new + 构造方法。

             可以访问本类中的实例方法,默认this.实例方法 ,可以省略this.

             可以访问本类中的类方法,默认类名.类方法,可以省略类名,也可以this.类方法,可以省略this.

例如:

package com.click369.test.demo1;

public class PersonBean {

    /**

     * 无参数构造方法

     */

public  PersonBean(){

     //new  PersonBean();//错误

      new PersonBean("test");

       this.testMethod();

       testMethod();

       PersonBean.testStaticMethod();

       testStaticMethod();

       this.testStaticMethod();

    }

/**

 * 有参数的构造方法

 * @param canshu

 */

public  PersonBean(String  canshu){

System.out.println("有参数的构造方法");

}

/**

 * 实例方法

 */

public  void  testMethod(){

System.out.println("实例方法");

}

/**

 * 类方法

 */

public static void testStaticMethod(){

System.out.println("类方法");

}

}

2.2 实例方法调用其他方法

              可以访问本类的构造方法,默认是new  + 构造方法;

              可以访问本类中的实例方法,默认this.实例方法,可以省略this.

              可以本类中的类方法,默认类名.类方法,可以省略类名,也可以this.类方法,可以省略this

例如:

package com.click369.test.demo1;

public class MyClass {

    public  MyClass(){

     System.out.println("无参数构造方法");

    }

    public  MyClass(String  value){

     System.out.println("有参数构造方法参数是=="+value);

    }

    public  void  testMehtod(){

     System.out.println("实例方法");

    }

    public  static  void  testStaticMehtod(){

     System.out.println("类方法");

    }

    /**

     * 实例方法

     */

    public  void  method(){

     //new MyClass();

     new MyClass("Zhangsan");

     this.testMehtod();

     testMehtod();

     MyClass.testStaticMehtod();

     testStaticMehtod();

     this.testStaticMehtod();

    }

}

2.3 类方法访问其他方法

                可以访问本类中的构造方法,new + 构造方法。

                不可以访问本类中的实例方法。

                可以访问本类中的其他类方法,默认类名.类方法,可以省略类名。

                不能出现this

例如:

package com.click369.test.demo1;

public class TestClass {

      public  TestClass(){

       System.out.println("无参数的构造方法");

      }

      public  void  tesrtMehtod(){

       System.out.println(" 实例方法");

      }

      public  static  void  testStaticMethod(){

       System.out.println("类方法");

      }

      /**

       * 类方法

       */

      public  static void  method(){

          new  TestClass();

         // this.tesrtMehtod();

         // tesrtMehtod();

          TestClass.testStaticMethod();

          testStaticMethod();

         // this.testStaticMethod();

      }

}

3.方法的重载
 在同一个java类中,出现的方法名称相同,但是方法的参数不同,这种现象就是方法的重载。

构造方法,实例方法,类方法都可以重载。
     2.方法的重载一个方法类型和方法的返回值没有关系,只看名称和参数。

例如:

package com.click369.test.demo1;

public class DoxClass {

   //构造方法重载

    public  DoxClass(){

    }

    public DoxClass(String  value){

    }

    //实例方法重载

    public  int   testMethod(int  num){

     return  100;

    }

    public  double   testMethod(double  num){

     return  100;

    }

    //类方法重载

    public  static    int  getInt(int  num){

       return num;

    }

    public  static    double  getInt(int  num ,double  num2){

     return num+num2;

  }

}

4.this关键字
         1.不能标识符

         2.this表示本类对象【出现在哪一个类,就代表哪一个类的对象】

         3.this不能出现在类方法中。

         this用法===[Java程序=对象+消息]

       我们在本类中本类自己定义的变量和方法时,也需要对象访问,而这个时候this就可以用来充当访问变量/方法的对象使用。

            1.  在构造方法中访问实例变量/实例方法默认是this.实例变量/实例方法,this是可以省略。

            2.在实例方法中访问其他的实变量/实例方法,默认是this.实例变量/实例方法,this是可以省略。

            3.this不能出现在类方法中

            4.如果需要强制使用被局部变量隐藏的成员变量的数据值的时候,一定不能省略this.  

5.static关键字
       static---静态的

                   用static关键修饰的变量叫静态成员变量

                   用static关键修饰的方法叫静态方法

       在程序运行的时候static关键字,表示为static修饰的java元素【变量/方法】,提前分配好运行所需的内存空间。

       通常情况下没有使用static修饰的变量和方法会在程序运行的时候分配内存空间,而使用static修饰的变量和方法则是要早于程序运行的时候分配内存空间,程序被加载的时候就已经分配好内存空间,这就是提前分配好运行所需的内存空间的意思。

      静态成员变量、静态方法的内存分配时机要早于实例变量和实例方法的内存分配时机。当我们静态方法访问实例变量/实例方法时,此时实例变量和实例方法不存在,因此上我们地静态方法中是不能访问实例变量/实例方法。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!