Java面向对象(4)--封装和隐藏

简介: Java面向对象(4)--封装和隐藏

Java中通过将数据声明为私有的(private),再提供公共的(public)方法:获取getXxx()和设置setXxx()实现对该属性的操作,以实现下述目的:

①隐藏一个类中不需要对外提供的实现细节。

②使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。

③便于修改,增强代码的可维护性。


class Animal {
  private int legs;// 将属性legs定义为private,只能被Animal类内部访问
  public void setLegs(int i) { // 在这里定义方法 eat() 和 move()
  if (i != 0 && i != 2 && i != 4) {
  System.out.println("Wrong number of legs!");
  return;
  }
  legs = i;
  }
  public int getLegs() {
  return legs;
  }
}
public class Zoo {
  public static void main(String args[]) {
  Animal xb = new Animal();
  xb.setLegs(4); // xb.setLegs(-1000);
  //xb.legs = -1000; // 非法
  System.out.println(xb.getLegs());
  }
}


四种访问权限修饰符


Java权限修饰符public、protected、(缺省)、private置于类的成员定义前,用来限定对象对该类成员的访问权限。


对于class的权限修饰只可以用public和default(缺省)。

public类可以在任意地方被访问。

default类只可以被同一个包内部的类访问。


bfa1a1e7328a46d7bbbe351ed7eacf3b.png




相关文章
|
22小时前
|
安全 Java
Java 面向对象之旅:在封装的港湾中,找到代码的安宁。
【6月更文挑战第15天】封装是Java面向对象的核心,它保护了类的内部数据,如`Book`和`Student`类中的属性。通过设定私有成员和公共方法,代码更有序,防止直接访问导致的混乱。封装提供了一种控制数据交互的方式,确保安全,如`setGpa()`方法验证输入。这使得代码结构清晰,如同港湾中的船只,井然有序,赋予编程过程美感和安全感。在面向对象的旅程中,封装是我们的庇护所,助力我们构建更美好的程序世界。
|
22小时前
|
Java
谁说 Java 封装很难?跟我学,秒变编程大神!
【6月更文挑战第15天】Java封装,就是将数据和相关操作打包,保护数据免受非法访问。比如`SuperHero`类,它的属性用`private`隐藏,通过`get/set`方法控制访问。这样提高了数据安全性和稳定性。就像超级英雄的超能力,不能随意使用。掌握封装,编程就变得更简单,助你成为Java大神!开始征服代码高峰吧!💪🎉
|
23小时前
|
安全 Java 数据安全/隐私保护
Java 封装:对象的“面纱”下,隐藏着怎样的世界?
【6月更文挑战第15天】Java封装是对象的隐私保护,它隐藏类的内部细节并设定访问接口。`Person`类展示了如何用`private`字段和公共getter/setter方法实现封装,确保数据安全性和代码可维护性。例如,`BankAccount`类封装了余额,只允许通过`deposit`、`withdraw`和`getBalance`方法操作。封装减少了外部干扰,增强安全性,提高可扩展性,是Java面向对象编程的核心原则之一。
|
1天前
|
设计模式 Java
一文掌握 Java 面向对象精髓:从类定义到对象实战
【6月更文挑战第15天】Java面向对象编程初学者指南:类是对象模板,如`Person`类含`name`和`age`属性。创建对象用`new`,如`Person person = new Person()`。访问属性如`person.name="Alice"`,调用方法如`person.sayHello()`。类能继承,如`Student extends Person`。对象间共享数据可传参或共用引用。多态性允许父类引用调用子类方法。注意对象生命周期和内存管理,避免内存泄漏。通过实践和理解这些基础,提升编程技能。
|
1天前
|
Java
深入 Java 面向对象:类的定义,竟然藏着这么多门道!
【6月更文挑战第15天】Java中的类定义是OOP的基础,它封装属性(如Student的name和age)和行为(如study())。简单的类仅触及表面,而复杂的类可模拟真实世界对象的多样性和交互。类还可通过继承扩展,如Student从Person派生,增加特有属性和行为。接口和抽象类等概念进一步增强了灵活性和可扩展性。类定义的深度和广度是构建高效、可维护代码的关键。
|
2天前
|
数据可视化 Java 测试技术
[笔记] 疯狂JAVA讲义(第3版) 第2章 理解面向对象
[笔记] 疯狂JAVA讲义(第3版) 第2章 理解面向对象
|
2天前
|
缓存 Java 程序员
[笔记] 疯狂JAVA讲义(第3版)第6章 面向对象(下)
[笔记] 疯狂JAVA讲义(第3版)第6章 面向对象(下)
|
2天前
|
Java 数据安全/隐私保护
[笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)
[笔记] 疯狂JAVA讲义(第3版)第5章 面向对象(上)
|
3天前
|
Java 编译器 开发者
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(二)
6 0
|
3天前
|
存储 Java 索引
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
Java基础3-JVM层面理解Java继承、封装、多态的实现原理(一)
9 0