面向对象的三大特征

面向对象的三大特征

面向对象的三大特征:封装、继承、多态。

一、封装

封装就是把同一类事物的共性(包括属性和方法)归到同一类中,方便使用。 (属性能够描述事物的特征,方法能够描述事物的动作。)

面向对象的封装有两层含义
1、类,属性、方法这些定义在类
2、为了安全考虑,在开发的过程中,会将属性私有化(private关键字修饰),需要提供对应接口完成设置和访问(公开的setter和getter方法)的过程。

封装:是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

例如:
电脑的机箱

一台电脑,它是由CPU、主板、显卡、内存、硬盘、电源等部件组成,将 这些部件组装在一起就可以使用电脑了,但是发现这些部件都散落在面,很容造成不安全因素,于是,使用机箱壳子,把这些部件都装在里面,并在机箱壳上留下一些插口等。

封装的好处

  1. 提高了代码的复用性。
  2. 隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可
    以理解为就是封装的概念。
  3. 提高了安全性。

封装的实现

需要使用一个Java中的关键字也是一个修饰符 private(私有权限修饰符)。
以后再描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。

例:

public class Test {
   
    public static void main(String[] args) {
   
        Person p = new Person();
        p.setName("张三");//给name赋值
        p.setAge(23);//给age赋值
        System.out.println(p.getName());//获取name赋的值
        System.out.println(p.getAge());//获取给age赋的值
    }
}

class Person{
   
	//私有化属性
    private String name;
    private int age;
	//获取name属性
    public String getName() {
   
        return name;
    }
	//设置name属性
    public void setName(String name) {
   
        this.name = name;
    }
	//获取age属性
    public int getAge() {
   
        return age;
    }
	//设置age属性
    public void setAge(int age) {
   
        this.age = age;
    }
}

在这里插入图片描述

单例模式

使用场景:某类创建对象只能且最多只有一个对象。
步骤:

  1. 私有化构造函数,杜绝外界创建对象。
  2. 内部创建该类对象(静态)。
  3. 提供公共接口向外提供该类的对象。
public class Test {
   
    public static void main(String[] args) {
   
        // 懒汉式单例模式
		Singleton s1 = Singleton.newInstance();
		Singleton s2 = Singleton.newInstance();
		System.out.println(s1 == s2);

        // 饿汉式单例模式
        Singleton2 s3 = Singleton2.newInstance();
        Singleton2 s4 = 
  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值