9.java类中方法与变量的调用关系

java类方法和变量之间的调用关系
    java类中可以有2个元素:变量 和 方法

1.同一个类中的方法可以调用变量

1.构造方法中
        1.可以使用当前中的实例变量,默认this.实例变量的名称,this可以省略
        出现成员变量隐藏的情况时,强制调用被隐藏的实例变量值时,this不可以省略
        2.可以使用当前类中的静态成员变量,默认类名.静态成员变量名称,也可以this.静态成员变量名称,类名和this可以省略        
        3.可以使用当前方法中的局部变量,直接使用局部变量名称调用
2.实例方法中
        1.可以使用当前中的实例变量,默认this.实例变量的名称,this可以省略
        出现成员变量隐藏的情况时,强制调用被隐藏的实例变量值时,this不可以省略
        2.可以使用当前类中的静态成员变量,默认类名.静态成员变量名称,也可以this.静态成员变量名称,类名和this可以省略        
        3.可以使用当前方法中的局部变量,直接使用局部变量名称调用
3.静态方法中
        1.不能使用this
        2.不能使用当前中的实例变量
        3.可以使用当前类中的静态成员变量,默认类名.静态成员变量名称,类名可以省略
        4.可以使用当前方法中的局部变量,直接使用局部变量名称调用

package com.wangxing.test1;

public class MyClass {
	//定义实例变量
	public  String  shilibianliang="实例变量";
	//定义静态成员变量
	public static String staticbianliang="静态成员变量";
	
	//构造方法--创建类的对象
	public MyClass(){
		System.out.println("无参数的构造方法");
		//定义局部变量
		String gouzaojububianliang="构造方法的局部变量";
		//构造方法中访问当前类中的实例变量,默认this.实例变量的名称,this可以省略
		//出现成员变量隐藏的情况时,强制调用被隐藏的实例变量值时,this不可以省略
		System.out.println("构造方法中访问当前类中的实例变量=="+this.shilibianliang);
		System.out.println("构造方法中访问当前类中的实例变量=="+shilibianliang);
		//构造方法中访问当前类中的静态成员变量,默认类名.静态成员变量名称,
		//也可以this.静态成员变量名称,类名和this可以省略
		System.out.println("构造方法中访问当前类中的静态成员变量=="+MyClass.staticbianliang);
		System.out.println("构造方法中访问当前类中的静态成员变量=="+this.staticbianliang);
		System.out.println("构造方法中访问当前类中的静态成员变量=="+staticbianliang);
		//构造方法中访问当前方法中的局部变量,直接使用局部变量
		System.out.println("构造方法中访问当前方法中的局部变量=="+gouzaojububianliang);
	}
	//实例方法
	public  void  shiLiMethod1(){
		System.out.println("MyClass类中的实例方法shiLiMethod1");
		//定义局部变量
		String shilijububianliang="实例方法的局部变量";
		//实例方法中访问当前类中的实例变量,默认this.实例变量的名称,this可以省略
		//出现成员变量隐藏的情况时,强制调用被隐藏的实例变量值时,this不可以省略
		System.out.println("实例方法中访问当前类中的实例变量=="+this.shilibianliang);
		System.out.println("实例方法中访问当前类中的实例变量=="+shilibianliang);
		//实例方法中访问当前类中的静态成员变量,默认类名.静态成员变量名称,
		//也可以this.静态成员变量名称,类名和this可以省略
		System.out.println("实例方法中访问当前类中的静态成员变量=="+MyClass.staticbianliang);
		System.out.println("实例方法中访问当前类中的静态成员变量=="+this.staticbianliang);
		System.out.println("实例方法中访问当前类中的静态成员变量=="+staticbianliang);
		//实例方法中访问当前方法中的局部变量,直接使用局部变量名称
		System.out.println("实例方法中访问当前方法中的局部变量=="+shilijububianliang);
	}
	//静态方法
	public static void  staticMethod1(){
		System.out.println("MyClass类中的静态方法staticMethod1");
		//定义局部变量
		String staticjububianliang="静态方法的局部变量";
		//静态方法中不能使用this
		//静态方法中不能使用实例变量
		//静态方法中访问当前类中的静态成员变量,默认类名.静态成员变量名称,类名可以省略
		System.out.println("静态方法中访问当前类中的静态成员变量=="+MyClass.staticbianliang);
		System.out.println("静态方法中访问当前类中的静态成员变量=="+staticbianliang);
		//静态方法中访问当前方法中的局部变量,直接使用局部变量名称
		System.out.println("静态方法中访问当前方法中的局部变量=="+staticjububianliang);
	}
}
测试代码
package com.wangxing.test1;
public class TestMain {
	public static void main(String[] args) {
		//创建MyClass类的对象
		MyClass mc=new MyClass();
		//调用MyClass类中的实例方法
		mc.shiLiMethod1();
		//类名调用静态方法
		MyClass.staticMethod1();
		//对象调用静态方法
		mc.staticMethod1();
	}
}

2.同一个类中的方法可以调用方法

1.构造方法中
        1.可以访问其他的构造方法,通过new关键字来使用
        2.可以访问当前类中实例方法,默认this.实例方法,this可以省略
        3.可以访问当前类中静态方法,默认类名.静态方法,也可以this.静态方法,类名和this都可以省略
2.实例方法
        1.可以访问构造方法,通过new关键字来使用
        2.可以访问当前类中其他实例方法,默认this.实例方法,this可以省略
        3.可以访问当前类中静态方法,默认类名.静态方法,也可以this.静态方法,类名和this都可以省略
3.静态方法
        1.静态方法中不能使用this.
        2.静态方法中不能使用实例方法
        3.可以访问构造方法,通过new关键字来使用
        4.可以访问当前类中其他静态方法,默认类名.静态方法,类名可以省略

package com.wangxing.test1;

public class MyClass {
	//构造方法
	public MyClass(){
		System.out.println("无参数的构造方法");
		//可以访问其他的构造方法,通过new关键字来使用
		new MyClass("zhangsan");
		//可以访问当前类中实例方法,默认this.实例方法,this可以省略
		this.shiliMethod2("lisi");
		shiliMethod2("lisi");
		//可以访问当前类中静态方法,默认类名.静态方法,也可以this.静态方法,
		//类名和this都可以省略
		MyClass.staticMethod2("wangwu");
		this.staticMethod2("wangwu");
		staticMethod2("wangwu");
	}
	public MyClass(String name){
		System.out.println("有参数的构造方法,参数name="+name);
	}
	//实例方法
	public  void  shiliMethod1(){
		System.out.println("无参数的实例方法shiliMethod1");
		//可以访问构造方法,通过new关键字来使用
		new MyClass("zhangsan");
		//可以访问当前类中其他实例方法,默认this.实例方法,this可以省略
		this.shiliMethod2("lisi");
		shiliMethod2("lisi");
		//可以访问当前类中静态方法,默认类名.静态方法,也可以this.静态方法,
		//类名和this都可以省略
		MyClass.staticMethod2("wangwu");
		this.staticMethod2("wangwu");
		staticMethod2("wangwu");
	}
	public  void  shiliMethod2(String shiliname){
		System.out.println("有参数的实例方法shiliMethod2,参数shiliname="+shiliname);
	}
	//静态方法
	public static  void  staticMethod1(){
		System.out.println("无参数的静态方法staticMethod1");
		//静态方法中不能使用this.
		//可以访问构造方法,通过new关键字来使用
		new MyClass("zhangsan");
		//静态方法中不能使用实例方法
		//可以访问当前类中其他静态方法,默认类名.静态方法,类名可以省略
		MyClass.staticMethod2("wangwu");
		staticMethod2("wangwu");
	}
	public static void  staticMethod2(String staticname){
		System.out.println("有参数的静态方法staticMethod2,参数staticname="+staticname);
	}
}
测试代码
package com.wangxing.test1;
public class TestMain {
	public static void main(String[] args) {
		//创建MyClass类的对象
		MyClass mc=new MyClass();
		//对象调用实例方法
		mc.shiliMethod1();
		//类名调用静态方法
		MyClass.staticMethod1();
		//对象调用静态方法
		mc.staticMethod1();
	}
}

总结:
      1.构造方法或者实例方法中可以使用当前类中的实例变量和实例方法,默认this.实例变量/实例
方法,this可以省略
      2.构造方法或者实例方法或者静态方法中可以使用当前类中的静态变量和静态方法,默认类名.静态变量/静态方法,也可以this.静态变量/静态方法【静态方法除外】,类名和this可以省略 
      3.构造方法或者实例方法或者静态方法中可以使用当前类中构造方法,使用new关键字
      4.构造方法或者实例方法或者静态方法中可以使用当前方法中的局部变量,直接变量名称
      5.静态方法中不能访问实例变量和实例方法
      6.静态方法中不能使用this.

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值