您的位置:首页 > 编程语言 > Java开发

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

2015-08-01 20:42 615 查看
提纲:

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中分别去访问他们,看看运行结果是什么。

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

类的继承、方法的重载

(讲完这个,所有该知道的基本知识就差不多了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 入门 基础