黑马程序员_面向对象

---------------------android培训java培训、java学习型技术博客、期待与您交流! -------------------

今天复习了下之前老师讲的课,这里总结下老师讲到的知识。
1、this关键字
1.1、this关键字使用的范围
 每个类的每个非静态方法(没有被static修饰)都会隐含一个this关键字,它指向调用这个方法的对象。
 用一句话来说:就是哪个对象调用this所在函数,this就代表哪个对象
 举个简单的例子,如下面这段代码:

public class Demo {
	public static void main(String[] args){
	Test t = new Test();		//创建对象
	t.outPut(100,"联合利华");	//调用方法,并传两个参数
	}
}
class Test {
	int num;
	String brand;
	public void outPut(int num, String brand){
		System.out.println("数量:" + num + ",品牌:" + brand);	//这里的属性前面没有加this,代表的是定义在方法内的变量
																	//在调用函数的时候,传入了两个值,因此这句输出的分别是  100和联合利华
		System.out.println("数量:" + this.num + ",品牌:" + this.brand);	//这里加了this,代表的是对象的num和brand,因为没有赋值,所以输出的是 0和null
	}
}

1.2、this语句可用于调用构造函数
如下面这段代码

public class Demo {
	public static void main(String[] args){
		Test t = new Test();		//创建对象,创建完之后会调用与之对应的构造函数
	}
}

 class Test {
	int age;
	String name;

	public Test(){		//无参构造函数
		this(22,"李四");	//有this,会调用与其参数类型一致的构造函数
	}

	public Test(int age , String name){		//带两个参数的构造函数
		System.out.println("年龄:" + age + ",姓名:" + name);		//输出的是传入的值,不是成员变量的值
	}
}

上面这段代码中,this语句用来调用构造函数
注意:两个构造函数之前不能相互调用,如果相互调用的话,会形成死循环;

2、static关键字
static关键字用于修饰类、变量、方法。
用static修饰的变量称为静态变量,用static修饰的方法称为静态方法。
访问静态方法和变量不用创建对象,直接用 类名.属性名 或者 类名.方法名就可以访问。
如下代码所示:

public class Demo {
	public static void main(String[] args){
		System.out.println(Test.age);	//类名.属性名调用
		Test.speak();					//类名.方法名调用
	}
}

 class Test {
	static int age = 22;				//静态变量
	static String name = "张三";		//静态变量
	public static void speak(){			//静态方法
		System.out.println("年龄:" + age + ",姓名:" + name);
	}
}

这面这段代码中,属性和方法都是static(静态)的,不用创建对象就可以访问。
static特点:
a、随着类的加载而加载,随着类的消失而消失,生命周期最长;
b、优先于对象存在,静态先存在,对象后存在
c、被所有对象共享
d、可以直接被类名调用
优点:对对象的共享数据进行单独空间的存储,节省空间。
3、实例变量和类变量的区别:
a、存放位置:
类变量随着类的加载而存放于方法区中,实例变量随着对象建立存在于堆内存中
生命周期:
类变量生命周期最长,实例变量随着对象消失而消失。

---------------------android培训java培训、java学习型技术博客、期待与您交流! -------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值