首页 > 其他分享 >面向对象的三大特性

面向对象的三大特性

时间:2022-11-23 21:37:20浏览次数:33  
标签:封装 name 继承 特性 面向对象 方法 public 三大 String

 面向对象的三大特性:

封装:

        我们把数据、一系列操作数据的函数封装到方法中,然后通过权限修饰符控制哪些方法可以让外知道,哪些只能自己知道,这样就能减少核心的数据被外界获取甚至破坏。

访问权限:

  • public:对外公开,都可以拿来调用。
  • private:私有的,只有自己可以看到。
  • protected:受保护的,只有包内可见,包外的子包可见。
  •  default:只有包内可见

说通俗点,java里面的一个类或者一个方法都是封装,或着是可以直接拿来调用的都是封装。

再通俗点:你的手机可以看成一个类,属于封装了你的信息;你手机里面的app也是封装,它封装了好多功能。

封装的好处:

  • 可以保护方法内部的代码不被修改,提高了安全性。
  • 可以提高代码的复用性:比如小王调取了获取名字的接口,小李还可以调同样的获取名字的接口。
  • 使得代码高内聚,低耦合:代码简洁,不同的模块之间更好的协作,之间的逻辑一目了然。

继承:

        说白了就是站在巨人的肩膀上,比如最早的座机(只能打电话),然后大哥大(打电话+发短信)继承了座机,然后诺基亚(屏幕+打电话+发短信)继承了大哥大,现在触摸板手机(可触屏幕+打电话+发短信)继承了诺基亚

        可以看到继承是在前人的基础上进一步的做出改变,言归正传回到java

java里面一个类可以继承另外一个类,获取被继承类的属性及方法供自己使用,其中如果一个类没有继承关系的话,它默认是继承的object类,java里面只能继承1个类

继承中的关键字:extends、super 、this、final

  • extends:单一继承,可以让一个类继承一个父类
  • super:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this:指向自己的引用。引用自身的属性和方法。
  • final:当用final修饰类时,是把类定义为不能继承的,即最终类;
  • 用于修饰方法时,该方法不能被子类重写:
  • 用于修饰属性时,和static一起使用,表明为一个常量,各类的所有对象共用一个值
     

多态:

        说白了就是多个可以标识你的外号,别人可以叫你名字,也可以叫你的外号,你就是多态(多种形态)。分为向上转型和向下转型:比如你的外号可以是爷爷也可以是孙子。

        在java里面分为类多态方法多态

        类多态:这里Dog的外号就是向上转型Animails

Animals animals =  new Dog();

        方法多态:分为重写重载

        重写和继承类似,就是继承了父类的方法之后再做一些自己方法的改进。

        重载是改变了原有的方法

       如何区别重写和重载:

        重写:

public class Persion {
	public void say(String name){
       System.out.println("名字是:"+name);
    }
}
public class Student extends Persion{
    public void say(String name) {		//重写了父类的方法,方法名和参数相同
        System.out.println(name+"是一个学生");
    }
}

        重载:

public void say(String name , String sex){}
public void say(String name,int age){	//重载方法,名字相同,但是传递参数的类型不同,系统能够判断,所以正确
}
public void say(String sex,String name){	//和第一个say具有相同类型的参数,所以系统无法判定,就会出现错误 
}

补充:如果方法名和参数都一样,返回数据类型不一样的话算不算重载===>不算

 

hashMap的底层数据结构是怎样的

标签:封装,name,继承,特性,面向对象,方法,public,三大,String
From: https://www.cnblogs.com/YuQiLe/p/16920167.html

相关文章

  • Karmada跨集群优雅故障迁移特性解析
    摘要:在Karmada最新版本v1.3中,跨集群故障迁移特性支持优雅故障迁移,确保迁移过程足够平滑。本文分享自华为云社区《​​Karmada跨集群优雅故障迁移特性解析​​》,作者:Karma......
  • 虚拟机软件VMware Fusion 13发布,增加了哪些新特性?
    macOS平台虚拟机软件VMwareFusion13Pro的正式版正式发布,新版本更新支持不少新特性,其中包括:支持macOSVentura13、支持虚拟TPM2.0模块与Windows11、支持在AppleSilico......
  • Java特性和优势
    简单性与C语言不同,Java是一种面向对象编程的语言,他的底层借鉴了C++语言但又不是完全相同,Java语言并不支持多继承、指针、goto语句、操作符重载、头文件等,但其语法基于C语......
  • 面向对象综合应用--搬家具
    1、需求将小于房子剩余面积的家具摆放到房子中。2、分析步骤需求涉及零个事物:房子和家具,故被案例涉及两个类:房子类和家具类2.1定义类房子类:......
  • 反射+新特性
    反射的应用:动态代理代理设计模式的原理:使用一个代理将对象包装起来,然后用该代理对象取代原始对象。任何对原始对象的调用都要通过代理。代理对象决定是否以及何时将方法......
  • 分布式系统的特性
    互联网上有许多的应用程序和服务,它们都有可能出现故障,但在很多时候,我们几乎都不能发现这些服务中断的情况,这就是分布式系统的关键特性。分布式系统的特性包括容错性、高可扩......
  • 分布式系统的特性
    互联网上有许多的应用程序和服务,它们都有可能出现故障,但在很多时候,我们几乎都不能发现这些服务中断的情况,这就是分布式系统的关键特性。分布式系统的特性包括容错性、高可......
  • 外贸找客户三大必备"套路",让您快速开发客户
    开发外贸客户,成交是一件很艰难的事情,但同时也是一件很有成就感的事情,很多人觉得做外贸很难,那是因为找不到技巧。外贸成单重要的就是跟进客户,我们要通过不断的跟进客户才能获......
  • java8 (jdk 1.8) 新特性——Stream ApI
    在java8中,有两个最重要的改变,一个就是之前了解的Lmbda java8(jdk1.8)新特性——Lambda ,还有一个就是StreamApi 1.什么是StreamAPI 简单来说就是一个类库,里边......
  • 面向对象综合应用--烤地瓜
    1、需求需求主线:1.被烤的时间和对应的地瓜状态:0-3分钟:生的3-5分钟:半生不熟5-8分钟:熟了超过8分钟:烤......