Java封装之this和static关键字

一、this关键字

特点:

  • 在类的方法中,使用this关键字代表的是调用此方法的对象的引用
  • this可以看做是一个变量,它的值是当前对象的引用
  • 使用this可以处理方法中的成员变了和形参同名的问题
  • 当在方法内需要用到调用到该方法的对象时,就可以用this
  • 在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法

二、this DEMO


class Student
{
	private int age;
	String name;
	double score;
		
	Student(){ 
		System.out.println("构造方法一被调用");
	}
	Student(int newage, String newname){
		System.out.println("构造方法二被调用");
		age = newage;
		name = newname;
	}	
		
	void testThis(){
		
		Student stutmp = null;
		stutmp = this;//this可以看做是一个变量,它的值是当前对象的引用
		System.out.println(stutmp.age);
		System.out.println(this.name);//在类的方法中,使用this关键字代表的是调用此方法的对象的引用/当在方法内需要用到调用到该方法的对象时,就可以用this
	}
	
	Student(int age, String name, double score){
		//this();
		this(19,"xiaoma");//在类的构造方法中可以调用this([参数列表])来调用该类的指定构造方法
		System.out.println("构造方法三被调用");
		this.age   = age;//使用this可以处理方法中的成员变了和形参同名的问题
		this.name  = name;//
		this.score = score;
	}
}

public class Demo2 {
	public static void main(String[] args) {
		Student stu1 = new Student(18, "xiaoma", 98.5);
		stu1.testThis();
		
	}
}
运行结果:
构造方法二被调用
构造方法三被调用
18
xiaoma

三、static关键字

特点:

  • 用来修饰类的成员一修饰成员变量的成为类变量(静态变量)
  • 修饰成员方法称之为类方法(静态方法)
  • 当类被加载的时候就会被加载,优先于对象的存在
  • 用来修饰语句块一称之为静态代码块,先于构造方法之前执行,只会执行一次,用来对静态成员做初始化
  • 调用的时候可以直接通过类名.成员来进行访问

注意事项:

  • 静态方法中只能访问外部的静态成员
  • 静态方法中不能出现this关键字

四、static DEMO

class Student
{
	private int age;
	String name;
	double score;
	
	static int data;
		
	Student(int age, String name, double score){
		System.out.println("构造方法");
		this.age   = age;
		this.name  = name;
		this.score = score;
	}
	
	static{//用来修饰语句块一称之为静态代码块,先于构造方法之前执行,只会执行一次,用来对静态成员做初始化
		System.out.println("静态代码快");
		data = 100;
	}
	
	static void test(){
		//System.out.println(this.age); //静态方法中不能出现this关键字也不能访问age
		//System.out.println(name);静态方法中只能访问外部的静态成员,因此只能访问data,应写为System.out.println(data);
	}
	
	void introdure(){  //方法 = 函数
		System.out.println("name=" + name + ",age=" + age + ",score=" + score);
	}
}

public class Demo2 {
	public static void main(String[] args) {
		Student stu1 = new Student(18, "xiaoma", 98.5);
		Student stu2 = new Student(18, "xiaoma", 98.5);
		stu1.score = 10;
		
		Student.data = 10;//调用的时候可以直接通过类名.成员来进行访问/用来修饰类的成员一修饰成员变量的成为类变量(静态变量)所以data就是个静态变量/当类被加载的时候就会被加载,优先于对象的存在,不需要依赖对象来访问
//		System.out.println("data=" + Student.data);
//		Demo2 D = new Demo2();//对于方法add如果不加static 可以以定义成员的方式来访问
//		System.out.println("ret=" + D.add(1, 3));
		System.out.println("ret=" + add(1, 3));
	}
	static int add(int a, int b){//修饰成员方法称之为类方法(静态方法)	
		return a + b;
	}
}
运行结果:
静态代码快
构造方法
构造方法
ret=4
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值