1 * @   面向对象的特征一:
2 * 封装与隐藏
3 * 创建一个类的对象以后,我们可以通过“对象.属性”的方式,对
4 * 对象的属性进行赋值,这里,赋值操作要受到属性的数据类型和存储
5 * 范围的制约,除此之外,没有其它制约条件,但是,实际问题中,我
6 * 们往往需要给属性赋值加入额外的限制条件,这个条件不能再属性声
7 * 明时体现,只能通过方法进行限制条件的添加。如(setLegs())
8 *
9 * 同时,我们需要避免用户再通过 “对象.属性”的方式对属性进行赋值。
10 * 则需要经属性声明为私有的(private)
11 * --->此时 针对于属性就体现了封装性
12 *
13 * 封装性的体现
14 * 将类的属性(xxx)私有化(private),同时,提供公共的(public)方法来
15 * 获取(getXxx)和设置(setXxx)此属性的值
16 *
17 *
18 * 封装性的体现① 如上 ② 不对外暴露的私有方法 ③单例模式.......
19 *
20 *
21 * 三.封装性的体现,需要权限修饰符来配合。
22 * 1.Java规定的4中权限(从小到大):private 缺省 protected public
23 * 2.4中权限可以用来修饰类及类的内部结构:属性,方法,构造器,内部类
24 * 3.具体的 4中权限都可以修饰类的内部结构
25 * 修饰类的话 只能使用 缺省,public
26 */
27 public class AnimalTest
28 {
29 public static void main(String[] agrs)
30 {
31 //AnimalTest test = new AnimalTest();
32
33 Animal animal = new Animal();
34 animal.name="大黄";
35
36 animal.setAge(2);
37 //animal.legs = 4; //The field Animal.legs is not visible
38 //animal.eat();
39 animal.show();
40
41 //animal.legs=-4;
42 //animal.show();
43
44 //animal.setLegs(-5); //0
45 //animal.setLegs(5); //0
46 animal.setLegs(6); //6
47 animal.show();
48 // animal.getAge();
49 // animal.getLegs();
50
51
52
53 }
54 }
55
56
57 class Animal
58 {
59 String name;
60 private int age;
61 private int legs; //腿的个数
62
63 //对于属性的设置
64 public void setLegs(int l)
65 {
66 if(l>=0 && l%2==0)
67 {
68 legs = l;
69 }
70 else
71 {
72 legs =0;
73 //抛出一个异常
74
75 }
76 }
77
78 //对于属性的获取
79 public int getLegs()
80 {
81 return legs;
82 }
83
84 //设置 set
85 public void setAge(int a)
86 {
87 if(age>=0)
88 {
89 age = a;
90 }
91 else
92 {
93 age = 0;
94 }
95 }
96
97 //获取 get
98 public int getAge()
99 {
100 return age;
101
102 }
103
104
105
106 public void eat()
107 {
108 System.out.println("动物进食");
109 }
110
111 public void show()
112 {
113 System.out.println("name="+name+",age="+age+",legs="+legs);
114
115 }
116 }

Java 面向对象的特征一: * 封装与隐藏的更多相关文章

  1. 简述Java面向对象三大特征:封装、继承、多态

    封装: 把对象的全部属性和服务结合在一起,形成不可分割的独立单位: 尽可能隐藏内部细节.(数据隐藏.隐藏具体实现的细节)     public.private.protected.default pu ...

  2. Java学习:面向对象三大特征:封装、继承、多态之封装性

    面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...

  3. Java学习:面向对象三大特征:封装性、继承性、多态性之多态性。

    面向对象三大特征:封装性.继承性.多态性之多态性. extends继承或者implemens实现,是多态性的前提. 例如:小菜是一个学生,但同时也是一个人.小菜是一个对象,这个对象既有学生形态,也有人 ...

  4. OOP面向对象 三大特征 继承封装多态

    OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...

  5. 黑马程序猿——JAVA面向对象的特性:封装,继承,多态

                                           - ----------android培训.java培训.java学习型技术博客.期待与您交流!------------  ...

  6. 面向对象三大特征之封装与static——(Java学习笔记四)

    面向对象     编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...

  7. Java面向对象的特征一:封装性

    1.4 面向对象的特征一:封装性 当创建了类的对象以后,如果直接通过"对象.属性"的方式对相应的对象属性赋值的话,可能会出现不满足实际情况的意外,我们考虑不让对象来直接作用属性,而 ...

  8. JavaSE基础知识(5)—面向对象(5.4面向对象三大特征:封装、继承、多态)

    面向对象编程具有三大特征: 封装 继承 多态 一.封装 1.好处 狭义的封装:也就是属性的封装,避免了任意赋值的危险,提高了数据的安全性! ①隐藏一个类中不需要对外提供的实现细节 ②使用者只能通过实现 ...

  9. Java面向对象和特征

    面向对象: 概念: 面向对象是一种程序设计思想,计算机程序的设计实质上就是将现实中的一些事物的特征抽离出来描述成一些计算机事件的过程,这种抽象的过程中,我们把具体的事物封装成一个一个的整体进行描述,使 ...

  10. Java面向对象(类、封装)

    面向对象 今日内容介绍 u 面向对象 u 封装 第1章 面向对象 1.1 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. l 面向过程的程序设计方式,是遇到一 ...

随机推荐

  1. 【介绍一个工具】图形化界面查看一个 golang 二进制文件的汇编代码

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 通常,可以通过命令行工具,来查看一个代码文件对应的汇编代码 ...

  2. 源码阅读:VictoriaMetrics中的golang代码优化方法

    全文请移步:https://zhuanlan.zhihu.com/p/469239020 或关注我的公众号: 公众号:一本正经的瞎扯

  3. 基于go-restful实现的PoW算力池模型

    最开始知道区块链是在17年初,当时因为项目压力不大,开始研究比特币源码.对于比特币中提到的Proof of Work,当时只是一眼带过,并没有详细查看过相关的代码.在最近的项目中,考虑到性能的要求,需 ...

  4. 从零开始配置 vim(10)——快捷键配置

    之前我们对neovim 进行了基础的配置,这篇主要介绍我比较常用的快捷键配置.到这篇开始我们的配置已经可以为两个大的模块--基础配置和快捷键配置.我们的目录也应该按照模块来进行组织.在正式配置之前让我 ...

  5. 【二】最新多智能体强化学习文章如何查阅{顶会:AAAI、 ICML }

    相关文章: [一]最新多智能体强化学习方法[总结] [二]最新多智能体强化学习文章如何查阅{顶会:AAAI. ICML } [三]多智能体强化学习(MARL)近年研究概览 {Analysis of e ...

  6. C/C++ 感染标志与空字节感染

    C/C++ 通过搜索PE结构中的空隙部分,对指定文件写入感染标志,作用是,如果程序被感染过则不再继续感染,而搜索空字节,则是要将恶意代码动态的填充到可执行文件中,并劫持执行流,以下代码就是这两种代码的 ...

  7. SpringCloud-07-Hystrix

    Hystrix 熔断器 1.Hystrix 概述 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务.第三方库,防止出现级联失败(雪崩). 雪崩:一个服务失败,导致整条链路 ...

  8. HP T520 改装DoraOS瘦客户机系统评测

    HP T520 介绍 HP T520是一款瘦客户机产品.采用AMD GX-212JC 1.2 GHz 双核 SOC APU,带 AMD Radeon HD Graphics.配置4G 内存,8G SS ...

  9. 程序语言多态(overide) - delphi 版本

    程序语言多态 - delphi 版本 前言: 所有程序语言都差不多,特写一篇 delphi 版本 的多态:其它语言 类同. 都是一些别人规定的语法而已,别人用一个下午设计一门语言,愚弄天下程序员一生: ...

  10. HBase-HBase的特征、优缺点、应用场景

    一.Hbase的概念 HBase是Hadoop的生态系统,是建立在Hadoop文件系统(HDFS)之上的分布式.面向列的数据库,通过利用Hadoop的文件系统提供容错能力.如果你需要进行实时读写或者随 ...