杂乱笔记(1)

对象,类


对象: 方法,域(数据成员)


方法可以调用该对象的数据成员
class Human
{


int getHeight()//成员方法
{
return this.height;
}
int height;//数据成员
}


在方法内部,可以调用同一对象的其他方法。在调用的时候,使用this.method()的形式。


基本类型的数据成员的默认初始值:
数值型: 0
布尔值: false
其他类型: null


return


this, this.field, this.method()


默认初始值,显式初始化


构造器是一个方法。
构造器有如下基本特征:


构造器的名字和类的名字相同
构造器没有返回值


对象最终的初始化值与构建方法中的值一致。因此:


构建方法 > 显式初始值 > 默认初始值(注意:与初始化时的执行顺序有关)


构建方法可以进行重载,普通方法也可以重载


constructor特征: 与类同名,无返回值


constructor目的: 初始化,初始操作


方法重载: 方法名 + 参数列表 -> 实际调用哪一个方法


对象(object)指代某一事物,类(class)指代象的类型。对象可以有状态和动作,即数据成员和方法。


到现在为止,数据成员和方法都是同时开放给内部和外部的。在对象内部,我们利用this来调用对象


的数据成员和方法。在对象外部,比如当我们在另一个类中调用对象的时,可以使用 对象.数据成员 


和 对象.方法() 来调用对象的数据成员和方法。
封装(encapsulation)对象的成员(成员包括数据成员和方法),从而只允许从外部调用部分的成员。利


用封装,我们可以提高对象的易用性和安全性。
保留有限的外部接口(interface),隐藏具体实施细节。
所有出现在interface中的方法都默认为public。
用implements关键字来实施interface。一旦在类中实施了某个interface,必须在该类中定义


interface的所有方法(addWater()和drinkWater())。类中的方法需要与interface中的方法原型相符


。否则,Java将报错。


interface, method stereotype, public


implements interface


implements interface1, interface2


在一个新类的定义中使用其他对象。这就是组合(composition)。组合是在Java中实现程序复用


(reusibility)的基本手段之一。has-a


基本类型一旦声明就会被分配内存空间,而普通类型需要使用new关键字来分配内存空间。




package, import


默认权限: 包中可见


-classpath, CLASSPATH
另外也可以设置系统的CLASSPATH环境变量,将上述路径加入到该变量中,而不用每次都键入-


classpath选项。


通过继承,我们创建了一个新类,叫做衍生类(derived class)。被继承的类(Human)称为基类(base 


class)。

在衍生类中,不能访问基类的private成员。

当我们创建一个衍生类的对象时,Java实际上先创建了一个基类对象(subobject),并在基类对象的外部(注意,这里是基类对象的外部,衍生类对象的内部),增加衍生类定义的其他成员,构成一个衍生类对象。外部使用者能看到的,就是基类和衍生类的public成员。如下图:

 基类对象与衍生类对象

图中黄色为基类对象。基层的成员之间可以互相访问 (利用Human类定义中的this指代基类对象)。

蓝色部分为衍生对象新增的内容,我将这部分称为衍生层。蓝色和黄色部分共同构成衍生对象。衍生层的成员可以相互访问(Woman定义中的this)。更进一步,我们还可以访问基层中public的成员。为此,我们用super关键字来指代基类对象,使用super.member的方式来表示基层的(public)成员。

当我们位于衍生层时(也就是在定义Woman类时),不能访问红色的基层private成员。当我们位于外部时,既不能访问紫色的衍生层private成员,也不能访问红色的基层private成员。

(衍生层的private成员有访问禁忌,所以标为斜线。基层的private成员访问禁忌最多,所以标为交叉斜线)

 

super和this类似,也是隐式参数。我们在类定义的不同层次时,this会有不同的含义。要小心的使用this和super关键字。

(Java并不强制使用this和super。Java在许多情况下可以自动识别成员的归属。但我觉得这是个好习惯。)

 

protected

我们之前介绍了两个访问权限相关的关键字,private和public,它们控制了成员的外部可见性。现在,我们介绍一个新的访问权限关键字:protected

标为protected的成员在该类及其衍生类中可见。这个概念很容易理解,就是说,基类的protected成员可以被衍生层访问,但不能被外部访问,如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值