面向对象 封装

Java封装性详解

一,封装性
1,封装的产生目的
保护某些属性和方法不被外部看见

2,封装的实现
为属性和方法封装是通过关键字private声明的。
实现该属性的set和get方法,为外部所访问。
为属性封装 private 属性类型 属性名称 ;
为方法封装 private 方法返回值 方法名称(参数列表){ }

3,访问封装的内容
这些属性肯定是要表示出一些实际意义,那么这些意义的内容一定是由外部设定。
被封装的属性如果需要被访问,则需要编写set()和get()方法完成。
例如,现在有一个属性:private String name ;
set(设置):public void setName(String n)
get(取得):public String getName()

class Person
{
    private String name ;   //声明姓名属性
    private int age ;       //声明年龄属性

    public void setName(String n)   //设置姓名
    {
        name = n ;
    }
    public void setAge(int a)       //设置年龄
    {
        age = a ;
    }
    public String getName()         //取得姓名
    {
        return name ;
    }
    public int getAge()             //取得年龄
    {
        return age ;
    }

    public void tell()
    {
        System.out.println("姓名: "+name+",年龄: "+age) ;
    }
}
public class ClassDemo02
{
    public static void main(String[] args)
    {
        Person per = new Person() ;//声明并实例化对象
        per.setName("IronMan") ;    //调用set()方法设置姓名
        per.setAge(18) ;            //调用set()方法设置年龄
        per.tell() ;
    }
}

以上代码可以访问封装的属性了,但是并没有加入检验措施。
如果年龄设置有问题,则就不能给属性赋值。
所以
set()方法中加入验证
get()方法中把内容简单取回即可

class Person
{
    private String name ;   //声明姓名属性
    private int age ;       //声明年龄属性

    public void setName(String n)//设置姓名
    {
        name = n ;
    }
    public void setAge(int a)   //设置年龄
    {
        if(a>=0&&a<=150)
        {
            age = a ;
        }
    }
    public String getName()
    {
        return name ;
    }
    public int getAge()
    {
        return age ;
    }

    public void tell()
    {
        System.out.println("姓名: "+name+" , 年龄: "+age) ;
    }
}
public class ClassDemo03
{
    public static void main(String[] args)
    {
        Person per = new Person() ; //声明并实例化对象
        per.setName("IronMan") ;    //通过调用set()方法设置姓名
        per.setAge(12);             //调用set()方法设置年龄
        per.tell() ;                //输出内容
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值