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

相关文章

来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.2K7
来自专栏芋道源码1024

熔断器 Hystrix 源码解析 —— 断路器 HystrixCircuitBreaker

本文主要基于 Hystrix 1.5.X 版本 1. 概述 2. HystrixCircuitBreaker 3. HystrixCircuitBreaker....

5367
来自专栏菩提树下的杨过

Flash/Flex学习笔记(23):运动学原理

先写一个公用的小球类Ball: package{ import flash.display.Sprite; //小球 类 public class B...

25410
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4045
来自专栏落花落雨不落叶

canvas画简单电路图

63311
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

32010
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6948
来自专栏hbbliyong

WPF Trigger for IsSelected in a DataTemplate for ListBox items

<DataTemplate DataType="{x:Type vm:HeaderSlugViewModel}"> <vw:HeaderSlug...

4064
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2586

扫码关注云+社区