Java 面向对象的特征一: * 封装与隐藏
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 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15268513.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)