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这个类里面明明没有看到这个函数呀?
这是因为,任何一个类,默认都隐含着存在一个与类名字一样,且没有参数的构造函数
你也可以明确写出来这个构造函数,并在里面写上所有你希望这个类的实例默认有的一些东西。
》》》你可以写出来各种不同的构造函数。例如下面的代码:
在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中分别去访问他们,看看运行结果是什么。
》》》》》》》》下一课的内容:
类的继承、方法的重载
(讲完这个,所有该知道的基本知识就差不多了)
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统