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. 有道云笔记之备选方案Obsidian和Notion

    有道云笔记限制登录设备 在商业项目中一般都会有plana.planb,对于云笔记,我也在寻找planb,有道云笔记在国内市场已经占据了很大的份额. 同类型中的就不再去挑选了,我觉得商业软件,迟早也会走 ...

  2. springboot整合nacos的入门Demo

    Nacos介绍 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现.配置管理和服务 ...

  3. Spring一套全通3—AOP编程

    百知教育 - Spring系列课程 - AOP编程 第一章.静态代理设计模式 1. 为什么需要代理设计模式 1.1 问题 在JavaEE分层开发开发中,那个层次对于我们来讲最重要 DAO ---> ...

  4. 万字剖析OpenFeign整合Ribbon实现负载均衡的原理

    大家好,前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理,这篇文章来继续剖析SpringCloud组件原理,来看一看OpenFeign是如何基于Ribbon来实现负载均衡的 ...

  5. Linux 进程卡住了怎么办?

    在我们使用 Linux 系统时,如果网络或者磁盘等 I/O 出问题,会发现进程卡住了,即使用 kill -9 也无法杀掉进程,很多常用的调试工具,比如 strace, pstack 等也都失灵了,是怎 ...

  6. 教你用JavaScript实现实时字符计数器

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个实时字符计数器.用户在指定位置打字,程序实时显示字符数量. 案例演示 在编辑框内输入 ...

  7. Matrix【未完成】

    Matrix The fitrst thing we do,let's kill all the language lawyers. -- Henry VI, Part II The "pr ...

  8. Nodepad++格式化XML和JSON字符串

    (一)格式化XML 1.安装XML Tools 在notepad++中点击菜单栏[插件]-[插件管理]. 在插件管理界面选择[XML Tools],点击[安装]. 2.打开XML文件 在notepad ...

  9. Java方法重载浅谈

    Java方法重载浅谈 目录: 方法重载的定义 方法重载的满足条件 方法重载的传递 基本类型 引入类型 方法重载的好处 方法重载的定义以及满足条件: 定义: 方法重载指同一类中定义多个方法之间的联系: ...

  10. ABC 311

    前四题过水 E 枚举正方形的上边界所在行.对于第 \(i\) 行一个没洞的位置 \((i,j)\),我们尝试求出以它为右上角的无洞正方形个数. 结论:设以 \((i,j-1)\) 为右上角的无洞正方形 ...