首页 > 编程语言 >Java面向对象编程

Java面向对象编程

时间:2024-04-29 22:11:20浏览次数:25  
标签:Java 构造方法 子类 接口 面向对象编程 抽象类 父类 super

  1. 什么是面向对象:以类的方式组织代码,以对象的来组织(封装)数据
  2. 三大特性:封装,继承,多态
  3. 构造器:
    • 和类名相同,没有返回值;
    • 作用:new本质就是在调用构造方法,默认使用无参构造;还可以初始化对象的值;
    • 注意:定以有参构造之后,若还想使用无参构造的话必须要显示的定义;
  4. 封装:数据的隐藏;通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问
    • 提高程序的安全性,保护数据;
    • 隐藏代码的细节;
    • 统一接口;
    • 系统可维护性增强;
  5. 继承:本质是对某一批类的抽象,从而实现对现实世界更好的建模;
  6. super注意点:
    • super调用父类的构造方法,必须在构造方法的第一个;
    • super必须只能出现在子类的方法或者构造方法中;
    • super和this不能同时调用构造方法
    • this代表本身调用者这个对象,没有继承关系也能使用,this()是本类的构造方法;
    • super代表父类对象的引用,只能在继承条件下才可以使用,super()是父类的构造;
  7. 方法的重写(需要有继承关系,子类重写父类的方法,原因是父类的功能子类不一定需要或者不一定满足):
    • 方法名必须相同;
    • 参数列表必须相同;
    • 修饰符的范围可以扩大但不能缩小;
    • 抛出的异常范围可以缩小但不能扩大;
  8. 多态:指同一方法可以根据发送对象的不同而采用多种不同的行为方式
    • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多;
    • 多态存在的条件:有继承关系;子类重写父类的方法;父类引用指向子类对象;
    • 注意:多态是方法的多态,属性没有多态性;
  9. 执行顺序:static修饰的静态代码块在类加载的时候就执行了,之后是匿名内部类,最后执行构造方法;
  10. 抽象类:抽象类是不能new的;抽象类中可以写普通的方法,抽象方法必须在抽象类中,类似是约束;存在的意义就是将可能共有的抽象出来,提高开发效率;
    虽然抽象类不能实现实例,但有构造方法,其构造方法和普通类的构造方法一样都是来初始化成员变量的。但是一旦一个普通类继承了抽象类,也可以在构造函数中调用其抽象类的构造函数。
  11. 接口的总结:
    • 实际上是各种约束;
    • 在接口中定义一些方法,让不同的类来实现;
    • 接口中的方法都是用public abstract修饰;
    • 接口中的属性都是用public static final修饰的;
    • 接口不能被实例化,接口中也没有构造方法;
    • 可以实现多个接口,也就是间接的实现了多继承;
    • 实现接口也必须要重写接口中的方法;

标签:Java,构造方法,子类,接口,面向对象编程,抽象类,父类,super
From: https://www.cnblogs.com/hytip/p/18166742

相关文章

  • Day1-Java介绍及JDK的安装配置
    Day1-JavaSE基本Dose命令切换盘符:E:=cd/dE:(跨盘切换要+/d)查看目录下所有文件:dir切换目录:cd+路径返回上一级:cd..清屏:cls退出终端:exit查看电脑IP:ipconfig打开计算器:calc打开画图:mspaint打开记事本:notepad测试网络:ping+url创建文件夹:md+文件夹名创建文件:cd......
  • java获取树状结构
    /***转成树状结构*/publicList<DictVO>toTree(List<DictVO>list){List<DictVO>treelist=newArrayList<DictVO>();for(DictVOoutBean:list){for(DictVOinBean:list){Longoutid=outBean.getId();Longinpid=inBean......
  • 8.Java异常(后续将添加编辑)
    异常最全最详细的Java异常处理机制异常处理机制抛出异常捕获异常处理异常关键字:try,catch,finally,throw,throws;packagecom.exception;publicclassText{publicstaticvoidmain(String[]args){inta=1;intb=0;try{......
  • bugku_ez_java_serializd
    下载附件看到依赖CC3.1,没有waf,直接CC5打了。packagecom.eddiemurphy;importorg.apache.commons.collections.Transformer;importorg.apache.commons.collections.functors.ChainedTransformer;importorg.apache.commons.collections.functors.ConstantTransformer;impo......
  • [2022DASCTF Apr X FATE 防疫挑战赛] warmup-java
    没错,还是java。我就跟java杠上了。分析先看依赖:没有啥特别的。审一下源码:IndexController.java:warmup路由下传参data,下面把十六进制转为字节直接反序列化了。看下动态代理MyInvocationHandler.java:看一下Utils的hexStringToBytes方法: 下面分析来自Java专题-简......
  • <BEA-000438> <Unable to load performance pack. Using Java I/O instead. Please en
    环境:weblogic10.3.6jdk1.6 myeclipse10.7今天升级了一下myeclipse到10.7,然后配置weblogic,启动的时候报<BEA-000438><Unabletoloadperformancepack.UsingJavaI/Oinstead.Pleaseensurethatwlntio.dll之前用myeclipse8.5没报过这个问题。后来上网看了一下,是找不到......
  • java 数据库编程(一)JDBC连接Sql Server数据库
    java数据库编程(一)JDBC连接SqlServer数据库一、JDBC简介java数据库连接技术(JavaDatabaseConnection,JDBC)是由java提供的一组与平台无关的数据库的操作标准,其本身由一类与接口组成,并且在操作中将按照严格的顺序执行。由于数据库属于资源操作,所以所有的数据库操作的最后必......
  • java中的代理
    目录定义好处分类静态代理示例(接口实现)例一:(海外代购)动态代理jdk动态代理(接口)CGLIB代理(继承)定义是一种设计模式,提供对目标对象另外的访问方式好处目标对象可以间接访问可以在目标对象实现的基础上,增强额外的功能,即扩展目标对象的功能不改变原有代码的前提下,可以通过代理来......
  • 【转】[Java] 防止并发的多种写法
    来自:阿里的通义灵码要确保在Java中同一方法被多个线程同时调用时,只有其中一个成功执行,可以采用几种并发控制策略。以下是几种实现方式:1.使用ReentrantLock的tryLock()importjava.util.concurrent.locks.ReentrantLock;publicclassSingletonExecution{privatesta......
  • 2-LinuxJava安装
    环境CentOS7.5Java8卸载现有JDKrpm-qa|grep-ijava|xargs-n1sudorpm-e--nodseps上传Java压缩包将jdk-8u212-linux-x64.tar文件上传到/opt/software目录中解压Java压缩包进入/opt/software目录cd/opt/software解压缩文件到指定目录tar......