对象的三大性质----封装性、构造器的使用

封装性的特点:高内聚,低耦合

高内聚:内部数据操作细节自己完成,不允许外部干涉

低耦合:仅对外部暴露少量的方法用于使用

(关键在于对private关键字的利用,使用了private声明的属性或者方法不能在类外调用)

赋值操作一定会受到数据类型与存储范围的限制,加入额外的限制条件,这个条件不能在属性声明的时候体现,只能通过方法进行限制条件的添加,避免用户再次使用对象、属性的方法

封装性的体现

类的属性私有化(private),同时提供公共的(public)的方法来获取(getXXX)和设置(setXXX)

public class Person {
    int age;
    String name;
    public void sleep() {
        System.out.println("人会睡觉");
    }
    public void eat()
    {
        System.out.println("人会睡觉");
    }
}
//如上所示这是一个正常的类,并没有体现出封装性
//接下来,我们尝试用封装性的思想,将其转化
public class Person {
//首先第一步先将类内部的属性全部都设置为private的权限
//使他们不能够通过外接调用直接赋值
    private int age;
    
    private String name;
    
    public void sleep() {
        System.out.println("人会睡觉");
    }
    
    public void eat()
    {
        System.out.println("人会睡觉");
    }
//第二步就需要给外界渠道去设置和获取属性的值
//set即为设置,在这个部分通过方法去限制输入数据的格式,相比于直接调用,更能准确地输入数据
//get即为获取,类的外部就不能够直接通过引用获得数据,只能通过指定方法获得

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

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

四种权限修饰符的理解

权限修饰符类内部同一个包不同包的子类同一个工程
private
缺省(default)
protected
public

注:

1、对于类的修饰,只能使用public和default,不能使用其他两个

2、可以在类的内部结构、属性、方法、构造器和内部类中

构造器的使用

构造器与类同名,比如Person p1 = new Person(),Person()就是构造器

(若没有定义的且显示出来的构造器,则系统默认定义一个空参构造器)

自定义构造器格式

权限修饰符  类名(形参列表)

一个类中定义的多个构造器,彼此之间构成重载(reload)

一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器了,且一个类中,至少会有一个构造器

public class Person {
    private int age;

    private String name;

    public void sleep() {
        System.out.println("人会睡觉");
    }

    public void eat()
    {
        System.out.println("人会睡觉");
    }

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

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public Person (int chuanru)
    {
        age = chuanru;
    }

    public Person (String chuanru)
    {
        name = chuanru;
    }

    public Person ()
    {
        
    }
    
//在如上代码中,三个构造器重名且在同一个类中,所以彼此之间构成重载
//此时需要注意的是,如果我们自己定义了构造器,系统给的空参构造器就不再使用
//所以此时需要我们自己定义一个空参构造器
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值