java面向对象的三大特性之封装

一:封装和隐藏

1.封装的引入

:当我们创建一个对象以后,我们就可以通过“对象.属性”的方式,对对象向的属性进行赋值。这里,赋值操作要收到属性的数据类型和存储范围的制约。除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能再属性声明时体现,我们只能通过方法进行限制条件的添加(比如setAge())。同时,我们需要避免用户再使用“随想.属性”的方式对属性进行赋值。则需要将属性声明为私有的(private)---->此时,针对属性就体现了封装性。其实私有方法也体现了封装性,还有单例模式等。
在这里插入图片描述
问题引入:我们在类中定义一个属性private name,编译器知道你有这个属性,有不等于能用。因为是人家私有的。比如路上看见一个美女,但是不等于你有,因为那是别人的女朋友。你能看得到的和你是否拥有是两回事。比如你对类中某一个属性的private修饰去进行私有封装。

2.封装是什么:

面向对象编程语言对客观世界的模拟。

(客观世界指的是对象的状态信息都被隐藏在对象内部外界无法直接操作和修改)

分层理解:
1.将对象的信息隐藏在对象内部。

2.不允许外部程序直接访问对象内部信息。

3.通过该类所提供的方法来实现对内部信息的操作和访问。

3.封装的含义:

把该封装的封装,该暴露的暴露。

(即实现良好的封装所具备的条件)

分层理解:
1.将对象的成员变量和实现细节隐藏起来,不允许外部直接访问。

2.把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作。

4.实现封装的目的:

1.隐藏类的实现细节

2.让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理使用

3.可进行数据检查,从而有利于保证对象信息的完整性

4.便于修改提高代码的可维护性。

5.封装的实现步骤:

封装性的体现,需要权限修饰符来配合。
1.java规定了4中权限(从小到大排为:):private 缺省,protected,public
2.4种权限可以用来修饰类及类的内部结构:属性,方法,构造器,内部类
3.具体的,4种权限修饰符都可以用来修饰类的内部结构:属性,方法,构造器,内部类
但是修饰类的话,之恩给你是:缺省,public
在这里插入图片描述
四种权限修饰符的范围:

在这里插入图片描述
代码演示;

  1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:
public class Person {
   private String name;
   private int age;
}

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

  1. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
public class Person{
    private String name;
    private int age;
​
    public int getAge(){
      return age;
    }
​
    public String getName(){
      return name;
    }
​
    public void setAge(int age){
      this.age = age;
    }
​
    public void setName(String name){
      this.name = name;
    }
}

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。
3. 对属性进行合法性的限制:

public class Person{
    private String name;
    private int age;
​
    public int getAge(){
      return age;
    }
​
    public String getName(){
      return name;
    }
​
    public void setAge(int age){
    //第三步:属性的限制等
    	if(age<0 || age>200){
    		System.out.peintln("年龄不合法");
		}else{
		   this.age = age;
		}			  
    }
​
    public void setName(String name){
      this.name = name;
    }
}

总结封装性:
java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的 内部结构在被调用时的可见性的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面向对象三大特性封装、继承和多态。 封装是指将数据和方法封装在一个类中,以达到隐藏内部实现细节的目的。通过封装,我们可以将类的属性和方法组织成一个独立的单元,并对外提供简单的接口。在引用中的代码示例中,Animals类封装了动物的属性(name, age, legs),通过创建对象并设置属性值,可以实现对这些属性的操作。 继承是指一个类可以继承另一个类的特性和方法。在Java中,除了java.lang.Object类外,所有的类都直接或间接地继承自Object类。继承可以使子类拥有父类的属性和方法,并且可以根据需要进行重写或扩展。引用中提到的所有Java类都直接或间接继承自Object类。 多态是指一个对象可以以多种形态存在。在面向对象编程中,多态可以通过方法重载和方法重写来实现。方法重载是指在一个类中可以定义多个同名的方法,但参数个数或类型不同。方法重写是指子类可以重写父类的方法,以实现自己的功能需求。多态使得我们可以通过父类引用指向子类对象,以实现统一的接口调用。 总结起来,封装实现了隐藏和保护数据的目的,继承实现了代码的重用和扩展,多态实现了灵活的对象使用和接口调用。 引用来源: 所有的Java类(除Java.lang.Objevt类之外)都直接或间接继承于java.lang.Object类。 引用来源: 我们将动物的特性封装在Animals类中。 引用来源: 在Java中,可以通过封装性实现数据的隐藏和保护。同时,继承性和多态性也是Java面向对象的重要特性之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值