Java 面向对象三大特征之一:封装

面向对象三大特征之一:封装

概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法类实现对隐藏信息的操作和访问

封装的好处: 隐藏类的实现细节 方便加入控制语句 方便修改实现 只能通过规定方法访问数据

封装的步骤: 1.修改属性 的可见性  >>>>>>设为private 2.创建公有的getter/setter方法  >>>>>>用于属性的读写 3 在getter/setter方法中加入属性控制语句  >>>>>>对属性值的合法性进行判断

封装的快捷键:Shift+Alt+S+R

废话不多说,上栗子:

public class Dog {
    //属性 
             //昵称
        private     String name;
            //健康值
        private     int health;
            //亲密度
        private    int love;
            //品种
        private    String strain="聪明的拉不拉多犬";
    
        
        
        
        //获得值 只读方法
    public String getName() {
            return name;
        }



//set 赋值 可写方法

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





        public int getHealth() {
            return health;
        }





        public void setHealth(int health) {
            
            if (health<0 || health>100) {
                this.health=40;
                System.out.println("健康值必须在0到100之间");
            }
            else
            {
            
            this.health = health;
            }
        }





        public int getLove() {
            return love;
        }





        public void setLove(int love) {
            this.love = love;
        }





        public String getStrain() {
            return strain;
        }





        public void setStrain(String strain) {
            this.strain = strain;
        }





    /**
     * 输出具体的狗类对象的信息
     */
            public void print()
            {
            System.out.println("宠物自白:我的名字叫"+this.name+"\n健康值为:"+health+"\n和主人的亲密关系"+love+"我是一只"+this.strain);    
                
                
            }
}
public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
    
        
        
        Dog dog=new Dog();
        dog.setName("拉不拉多犬");
        System.out.println(dog.getName());
        dog.setHealth(90);
        System.out.println(dog.getHealth());
        
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人随笔

Java 抽象类与final用法

 抽象类: 基于继承 抽象类和抽象方法的定义 父类的意义:  把子类共有的属性,抽取出来,达到代码的重用 抽象类不可被实例化 使用抽象类,限制实例化(只有派生类...

2887
来自专栏Java帮帮-微信公众号-技术文章全总结

第九天 面向对象-类,封装,对象,private,this【悟空教程】

2186
来自专栏前端知识分享

第197天:js---caller、callee、constructor和prototype用法

612
来自专栏deepcc

Js apply() call()使用详解

3326
来自专栏Java帮帮-微信公众号-技术文章全总结

第十七天 集合-Collection&amp;增强for&amp;迭代器【悟空教程】

出现意义:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

932
来自专栏阿凯的Excel

Python读书笔记18(初识自定义函数)

在分享自定义函数之前,我们要弄明白什么是函数、方法。之前的教程我有刻意用方法和函数两种方式来称呼具体的内容。例如删除列表的某个元素! ? 方法是函数的一种,类中...

3489
来自专栏个人随笔

Java 使用面向对象开发

对象就是实际存在的一些东西 程序来源于生活 软件出现的目的: 用计算机的语言描述现实世界 用计算机解决现实世界的问题 面向对象设计和开发程序的好处: 交流更加流...

3077
来自专栏学习力

《Java从入门到放弃》JavaSE入门篇:数组

1037
来自专栏武培轩的专栏

剑指Offer-数组中出现次数超过一半的数字

题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现...

2737
来自专栏Vamei实验室

Python基础09 面向对象的进一步拓展

我们熟悉了对象和类的基本概念。我们将进一步拓展,以便能实际运用对象和类。 调用类的其它信息 上一讲中提到,在定义方法时,必须有self这一参数。这个参数表示某个...

1867

扫码关注云+社区