JAVA入门基础文章2-类的概念(继续深入点)

提纲:

1)this是什么意思

2)类的构造函数和属性的访问

3)类的成员变量

4)类的访问控制(private, public)

一、this是什么意思

在第一篇文章中,各种set/get方法里面都用到this.

这个this,指的就是这个类本身,所以this.name就是这个类里面的name属性

举一反三,如果写:this.sayHi();,就是调用本类里面的sayHi这个方法


二、类的构造函数和属性的访问

(1)类的构造函数

类的构造函数:本质上就是一个函数(方法),是用来创建类的实例的函数


如前面Person这个类,在创建它的实例时,使用了 new Person();

这实际上就是使用了名字为Person()这样的一个函数


你可能发现,Person这个类里面明明没有看到这个函数呀?

这是因为,任何一个类,默认都隐含着存在一个与类名字一样,且没有参数的构造函数


你也可以明确写出来这个构造函数,并在里面写上所有你希望这个类的实例默认有的一些东西。

public class Person{

	//以下都是属性。(是名词)
	private String name;//姓名
	private int age;//年龄
	private String sex;//性别
	private String favorite;//喜好

	public Person(){
		this.name = "米老师";
		this.age = 40;
		this.sex = "男";
		this.favorite = "美女,而且胸要大,皮肤要白";
	}

	public String getName(){
		return this.name;
	}
	public void setName(String name){
		this.name = name;
	}

	//下面的代码就不再重复写了,就是第一章中Person.java里面的代码
}

public class RunClass{

	public static void main(String[] arg){

		RunClass runClass = new RunClass();
		runClass.makePerson();
	}

	//这也是一个方法
	public void makePerson(){
		
		//根上一章中的RunClass相比,这次的代码中,没有写set方法
		//创建了Person实例后,直接调用了sayHi方法。
		//运行一下看看结果,思考一下构造函数的作用。
		Person onePerson = new Person();

		onePerson.sayHi("helen");
	}
}


》》》你可以写出来各种不同的构造函数。例如下面的代码:

public class Person{

	//以下都是属性。(是名词)
	private String name;//姓名
	private int age;//年龄
	private String sex;//性别
	private String favorite;//喜好

	public Person(){
		this.name = "米老师";
		this.age = 40;
		this.sex = "男";
		this.favorite = "美女,而且胸要大,皮肤要白";
	}

	public Person(String name){
		this.name = name;
		this.sayHi(name);
	}

	public Person(String name, int age, String sex){
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.favorite = "我这个人没有什么爱好";
	}

	public String getName(){
		return this.name;
	}
	public void setName(String name){
		this.name = name;
	}

}

在Person中增加了两个新的构造函数,试着到RunClass中

分别用这个两个新的构造函数去创建Person的实例,看看运行结果是什么,想想为什么


-------------------------------------------------------------------------------

|     休息10分钟,做几个瑜伽动作,再回来看下面的内容     |

-------------------------------------------------------------------------------


(2)属性的访问

前面已经说过了,类的属性是什么。

那么如何为属性赋值?如果得到属性的值是什么?


想想Person类中代码,有一堆的 set / get 开头的方法

而且,这些set/get后面都是每个属性变量的变量名,且首字母大写

这就是在JAVA中,访问属性的方式:

1)为每个属性定义一个set方法和一个get方法,且方法名的set/get后面是属性变量名(首字符大写)

2)创建了类的实例后,通过这两个方法,分别给属性赋值、获取属性的值。


三、类的成员变量


所谓类的成员变量,其实就是类的属性的另一种叫法

以Person这个类为例

他有四个属性:name, age, sex, favorite

也就是说,他有四个成员变量,分别是:name, age, sex, favorite


其实

“成员变量和成员函数”是C++语言里面的习惯叫法

“属性和方法”是JAVA语言里面的习惯叫法


这个世界的程序员们,以及各种书籍中,总是随意的交叉着叫着这些名字



四、类的访问控制

这里,先讲两个:private, public


在Person这个类里面,可以看到,定义属性的时候,起头的单词是:private

而定义方法的时候,起头的单词是:public 


字面翻译:

private:私有的

public:公开的


也就是说,通过这个关键字,定义类里面的属性或方法以怎样的形式在代码中被访问。


一个类被实例化以后(就是 new Person() )

只有public的东西才能被访问到,而private的东西是不能用的。


试着给Person中增加一个public的属性:地址,再增加一个private的方法:介绍自己

然后在RunClass中分别去访问他们,看看运行结果是什么。


》》》》》》》》下一课的内容:

类的继承、方法的重载

(讲完这个,所有该知道的基本知识就差不多了)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值