面向对象(2)

1.封装:

隐藏对象的属性和实现细节,仅对外提供公共访问方式
作用: (1) 将变化隔离
(2) 便于使用
(3)提高重用性
(4)提高安全性
封装原则: 将不需要对外提供的内容都隐藏起来
做法: 修改属性的可见性(private)来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。如:

private int age;
public int getAge()
{
   return age;
}
public void setAge(int age)
{
   this.age=age;
}

之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。比如上例setAge()中可以加入判断,传入的符合要求的age才会被接收。

2.访问控制符

java提供了三个访问控制符private,public,protected,分别代表三个访问控制级别。另外还有一个不加任何访问控制符的访问控制级别,所以一个有四个访问控制级别。
private:当前类访问权限,只能在当前类的内部被访问
default:包访问权限,可以被当前包的其他类访问
protected:子类访问权限,既可以被同一个包的其他类访问,也可以被不同包的子类访问。通常如果用protected来修饰一个方法,通常是希望其子类来重写这个方法
public:公共访问权限,可以被所以类访问

3.方法重载

方法名称相同,参数项不相同。那么认为一个方法是另一个方法的重载方法。
注意:重载只跟参数有关,与返回类型无关。方法名和参数相同而返回类型不相同,不能说是重载。
典型的方法重载:System.out.println(); System.out代表了一个java.io.PrintSteam对象,具有多个println(打印)方法,该方法可以接收不同类型的数据作为参数根据类型不同,调用不同的打印方法。

4.构造方法

作用:
给对象进行初始化(对象创建要具备的初始特性),为实例变量赋予合适的初始值
特点: (1)函数名与类名相同
(2)没有返回类型(和void不同)
(3)对象一创建,就会调用与之对应的构造函数
(4)当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。当在类中自定义了构造函数后,默认的构造函数就没有了
构造方法与一般方法的区别:
(1)构造函数是在对象一建立就执行,给对象初始化一般方法只有对象调用才执行,是给对象添加应具备的功能
(2)一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次
构造方法重载
构造方法重载是方法重载的一个典型的特例。参数列表不同。
可以通过重载构造方法来表达对象的各种多种初始化行为。也就是说在通过new语句创建一个对象时,可以实现在不同的条件下,让不同的对象具有不同的初始化行为。

5.this关键字

(1)this代表它所在函数所属对象的引用,简单说,哪个对象在调用this所在的函数,this就代表哪个对象。这可以解决实例变量和局部变量之间发生的同名的冲突。如在构造函数里使用的this关键字
当定义类中的功能时,该函数内部要用到该函数的对象时,使用this来表示这个对象
(2)this关键字在构造函数间的调用

class person
{
     private String name;
     private int age;
     Person (String name)
     {
          this.name=name;
     }
     Person (String name,int age)
     {
          this(name);  //调用第一个构造函数,增强代码复用性   
          this.age=age;
     }
}

注意:这种this语句要放在构造函数的第一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值