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

相关文章

来自专栏web编程技术分享

浅谈js回调函数

2647
来自专栏嵌入式程序猿

sizeof应用的小陷阱

本篇笔记主要介绍在项目开发中,使用sizeof的一个要注意的地方。分别在8位机microchip PIC18F46K22, 16位机microchip ds...

3488
来自专栏申龙斌的程序人生

Solidity语法知识点(文末有彩蛋)

最近报名参加了硅谷区块链举办的《智能合约开发课》第二期培训班,根据培训要求,不能透露课程的内容,但我会在steemit上不断地记录我的成长过程。 https:/...

4335
来自专栏十月梦想

ES6基础语法之proxy用法

proxy(代理)简单理解为在对对象进行的'.'操作时,设定的一个过滤器,能够想象到的比较适合的使用场景是做单元测试时,验证对对象的操作。

973
来自专栏申龙斌的程序人生

零基础学编程028:面向对象编程OOP

在《零基础学编程021:获取股票实时行情数据》一节中,我们想获取6支股票的行情数据,在《零基础学编程022:函数的世界》里我们能够把重复性的代码封装为一个函数p...

2836
来自专栏大闲人柴毛毛

Java8新特性——Lambda表达式(一)

1. 预备知识 在了解Lambda表达式之前首先需要了解以下预备知识。 1.1 如何成为一名高级码农? 如果老板让你写一个用于毁灭地球的函数,而你写了一个毁灭...

3104
来自专栏大数据钻研

Java设计模式之简单工厂、工厂方法和抽象工厂

封装变化 多用组合,少用继承 针对接口/超类编程,不针对实现编程 松耦合 开闭原则 让我们从一个简单的类开始,看看如何将之改造成符合OO原则的类以及工厂模式在...

3057
来自专栏owent

C++ 新特性学习(二) -- Array、Tuple和Hash库

这回的两个库没怎么用过,这里的记录就用VC++写了,使用G++和BOOST的时候和智能指针类似。

721
来自专栏老马说编程

计算机程序的思维逻辑 (14) - 类的组合

上节我们通过类Point介绍了类的一些基本概念和语法,类Point中只有基本数据类型,但类中的成员变量的类型也可以是别的类,通过类的组合可以表达更为复杂的概念。...

1879
来自专栏软件开发 -- 分享 互助 成长

函数指针

前言: 先看两个基础,函数指针和extern关键字,然后由一个具体的例子,具体使用下函数指针。 一、基础 函数指针:即指向函数的指针,本质还是一个指针。 函数指...

1706

扫描关注云+社区