5.22java学习笔记

构造器方法
    我们在创建一个类的时候,其结构如下:
Public class 类名{
内容(包括了属性与方法)
}
其实其中包含了一个隐含的构造器,如下:
Public (这里不用写返回值类型)类名{
(内部是空的,没有内容)
}
【注意,不用写返回值类型】
我们平时在调用类的时候,若是不带参数,则默认是这个构造器,即一切程序的执行是按初始化状态,所以说这个构造器我们可写也可以不写。
假如,我们调用类的时候有些内部的属性不是默认的,而是我们自己可以改变的,那该怎么办呢?有下面两种方法:    其一:通过使用在类里面已经写好的方法;
其二:方法的重载。
(下面我们具体讲一讲什么是方法的重载)

方法的重载
方法在具体执行的时候初始的可能性也许会有几种,故我们定义几个名字相同的方法,但执行的路径不一样;
比如说,我们要调用一个名为student的类(其中包含了一个叫name的属性),有时候我们在调用的时候不需要关注学生的姓名,在使用这个类的时候就无需去给name赋值,加入我们需要关注学生姓名,那么我们可以在使用student的开始就带一个name值,比如说student("小明");那么我们就要重载方法了,具体如下:
Public (这里不用写返回值类型) student(String args){
Name=args;
}
有几个需要注意的地方:
构造方法不用声明返回值类型 ,但一定有返回值,返回值类型就是方法名;
构造方法的名字必须和类的名字一样;
构造方法必须通过new 关键字来调用;
一个类中可以定义多个构造方法,只要每个构造方法的参数个数或者类型不一样。

this关键字:
以我的理解,this的作用就是:当你想要用同名的变量,比如说a和a(含义不一样),很明显,在C语言中这点不可能实现,编译器会提示重复定义,但有时候为了便于理解,写同名更加合理,于是乎在java之中的this关键字就产生作用了,下面先看一个例子:
/**
* 学生的名字
*/
private String name;

/**
* 设置名字的方法
* @param name 要设置为,名字的字符串
*/
public void setName(String name){
//this:指正在调用setName()方法的一个对象
this.name = name;
}
很明显这两个name含义不同,但都表示名字的意思,“this.变量名”就是化解误会,解释说这个变量不是那个变量,虽然他们的名字一样,这个变量指的是这个class文件中的之前定义的一个,不是近处的这一个。(大家没有被绕晕吧?)


另外,this关键字还有一个作用:在构造器中可以调用构造器,也可以调用方法,但是在一般的方法中不能够调用构造器,那么当在构造其中调用构造器时可以使用this关键字指代另外一个构造器,注意,this只能够调用一次,而且只能够再第一行调用。

猜你喜欢

转载自yuyongjia.iteye.com/blog/1539986