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 条评论
登录 后参与评论

相关文章

来自专栏向治洪

ES7、ES8新特性

概述 JavaScript,作为一门处于高速发展期的开发语言,正在变的越来越完善、稳定。我们必须拥抱这些变化,并且我们需要把ES8加入到我们的技术栈中。 E...

7295
来自专栏前端桃园

JavaScript ES6  让我们写得少,做得多

JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读。它允许您编写更少的代码并执行更多操作。 ES6 向我们介绍了许多强大的功能...

1012
来自专栏影子

jQuery中的常用内容总结(三)

4399
来自专栏从流域到海域

《笨办法学Python》 第7课手记

《笨办法学Python》 第7课手记 本节课是为了巩固之前的内容,作者要求不能跳过所以就老老实实照做了。 代码如下: print "Mary had a lit...

1878
来自专栏影子

jQuery中的常用内容总结(三)

1072
来自专栏数说戏聊

04.字段抽取/拆分&记录抽取1.字段抽取2.字段拆分3.记录抽取

902
来自专栏GreenLeaves

Vue.js系列之四计算属性和观察者

一、计算属性 1、模版内的表达式非常便利,但是设计它们的初衷是用于简单计算的。在模版中放入太多的逻辑运算会让模版过重且难以维护,例如如下代码: <div id=...

2276
来自专栏web前端教室

undefined 和 void 0 区别?

image.png 这二个东西都是各有各的用处,一般if判断的时候,我用undefined的时候多些;a标签的时候用 void 0 的时候多些。还有的时候,...

1965
来自专栏影子

jQuery中的常用内容总结(三)

转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7571998.html

921
来自专栏V站

PHP中一些等号_尖括号相关符号的意思

学习PHP过程中,会常碰到一些特殊的符号,比如:=、==、===、->、=>、<<<这些个符号,下面分别介绍是什么意思,在什么地方用到。 1、“=”(等号) 等...

3388

扫码关注云+社区