OOP面向对象的知识总结

目录

一、OOP的概念

                     面向对象思想:

二、方法:

三、对象数组:

四、重载与构造:

         五、this static 单例模式:

         六、继承:

七、重写与抽象:

八、final与多态:

九、instanceof:判断运算符:

十、接口;

十一、异常:

十二、里氏替换原则:

十三、修饰符:


一、OOP的概念

     1.OOP 即面向对象编程: java就是面向对象编程的语言。
        世界由万物组成,万物都是对象(世界万物皆为对象)

                     面向对象思想:

  •              第一步:发现类;
  •              第二步:发现类的属性;
  •              第三步:发现类的方法;

    2.对象:客观的存在在这个世界上的每一个事物;
             万事万物皆为对象;
    3.类:从具有相同属性和方法的多个对象中抽取出来的;
            类里面有且仅有属性与方法;(学会把类看做一种数据类型)
    4.区别:对象是实实在在存在的具体的概念 ;
            类是一个抽象的概念;
    5.属性---本身所具备的特征;
       方法---会的行为(功能);

二、方法:

1、方法构造:修饰符 返回类型 方法名(参数){方法体}
    2、属性构造:修饰符 数据类型 变量名
    3、方法返回类型:方法按照返回类型可以分为以下两种:

  •             有返回return  : 在方法名前面接一个数据类型 ,且方法体内部最后一行必须接return 
  •              而且返回的数据类型必须和前面的数据类型保持一致!
  •             无返回void  : 在方法体内部不需要接return 
  •             在类里面 ,有且仅有“属性”和“方法”(禁止直接接代码)

    4、方法传参:实参和形参的参数个数、数据类型、顺序一致
    5、局部变量和成员变量:

  •     局部变量没有初始值,而成员变量有
  •     同名时,局部变量具有更高的优先级
  •     作用域:局部变量只能在本方法中使用,成员变量可以在本类的所有方法中使用
  •     同一个方法中,局部变量不允许重名

三、对象数组:

   1、学会把类看作是一种数据类型!
   2、对象数组三部曲:

  •         定义类
  •         声明并实例化一个对象
  •         初始化(赋值)

    3、封装两步:私有化属性 公开方法(可以根据实际情况考虑是否公开读写方法
    4、this 这个 指代自己本类


 四、重载与构造:

1、方法的重载 :同名不同参(参数类型 、个数以及顺序不一致)
                   构造函数

  •     方法名必须跟类名相同
  •     没有返回类型 ,也不需要void
  •     根据实际情况决定参数个数
  •     在对象被实例化的时候被自动调用 ,不能手动用对象名去点
  •     可以有多个(重载)
  •     所有的类都自带一个无参的构造方法 ,一旦自定义了一个构造函数,系统自带的无参的就没有了

   五、this static 单例模式:

  1、this 这个 指代自己本类;

  •        构造函数链:  将所有对象的实例化全部归结到一个方法中        
  •        用this可以在构造函数内部调用其他的构造函数 ,但是它只能放在方法体的第一行;

    2、static

  •     非静态的只能用对象名调用, 静态的既能用对象名来调用,
  •            又能用类名来调用
  •     静态的方法内部只能调用静态的 ,非静态的方法内部都能调用
  •     静态的在对象中是共享的,只占用一份内存空间
  •         代码块:分为静态代码块和非静态代码块,静态的只占有一份空间,都是在对象被实例化的时候自动调用 先静后非静

    3、单例模式:

  •        该类只能被实例化一次(设计模式);

六、继承:

  •         父类中公开的方法或者属性子类都可以无条件拿到(继承到)

1、继承的好处:

  •        少写一些共有的代码
  •        提供另外一种形式的分类
  •        代码重用

    2、语法:

  •        子类 extends 父类

    3、super用法:

  •        super.属性可以显示调用父类属性;
  •        super.方法可以显示调用父类方法;

    4、子类可以直接拿到父类的公有的

  •        但是父类不能拿子类的
  •        继承的单方向
  •        一个类只允许有一个父类
  •        继承也是单继承

    5、子类在实例化的时候 会先调用父类的构造函数
   

七、重写与抽象:

1、重写:

  •       子类对于父类的不满意,可以补充,则直接重写父类的方法。
  •       删除重写中的super.方法();就是全部推翻父类写法。
  •        注意:子类的方法的名字、返回值、参数必须要与父类保持一致
  •       修饰符只能比父类的要高或者相等
  •        重写的方法是否可以重载?可以

    2、抽象:

  •     抽象类:不能被实例化 但是可以作为其他类的父类
  •     抽象方法: * 没有方法体;
  •                   必须在子类中实现(重写),除非子类也是一个抽象类;
  •                   抽象方法必须在抽象类中

八、final与多态:

    1、多态:同样一种行为,在不同的对象中(不同的环境下)会产生不同的形态【关键在于将父类作为形参】
    2、final:

  •     放在类前面,则该类不能被继承
  •     放在方法前面,则该方法不能在子类中被重写
  •     放在属性(变量)前面,则为常量,必须有初始值且不能被修改

九、instanceof:判断运算符:

左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false

十、接口;

  1、接口表示的其实是一种能力

  •        对象是对现实世界物体的抽象
  •        类是对对象的抽象
  •        接口是对类的抽象

    2、语法:public interface 接口名

  •        如果一个类要实现这些功能:
  •        语法是 public class 类名 implements 接口名1,接口名2...

    3、接口与抽象类的区别:

  •      抽象类是类所以只能单继承,而接口(interface)可以多实现
  •      抽象类继承用extends,而接口用implements
  •      抽象类可以有构造,接口不能
  •      抽象类可以有一般的属性,接口中的属性只能是静态常量
  •      抽象类中可以有抽象方法,也可以有一般的方法,而接口中只能有抽象方法
  •      抽象类中抽象方法可以被除private以外的修饰符修饰,但是接口中只能是public

     4、常量一定是全大写

十一、异常:

1、异常:就是在程序中有可能发生的问题。
      2、语法是:try{//监视
       有可能出现问题的代码
    }catch(异常的类型 异常信息所封装成的对象){
       处理异常的代码    
    }finally{
       最后会被执行的代码(有无异常都会被执行)
    }
      3、自定义异常 throws
      4、抛出异常throw

十二、里氏替换原则:

用子类实例化的对象来覆盖父类(父接口)声明的对象 Pet p = new Dog();

十三、修饰符:

  •       private:私有化,最小气的,只能在自己的类中访问;
  •       friendly:默认,友好的,只能在自己的类中、同包的类中访问;
  •       protected:受保护的,只能在自己的类、同包的类、子类中访问;
  •       public:公共的,最大方的,当前项目中所有的类都可以访问。


     

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Java 高级程序员需要掌握以下几个知识体系: 1. Java 语言基础:包括语法、数据类型、控制结构、面向对象编程等。 2. 集合框架:Java 的集合框架是 Java 编程中非常重要的一部分,要求高级程序员对其熟练掌握。 3. 多线程:Java 中的多线程编程对于开发高性能的程序是非常重要的,高级程序员需要掌握多线程的实现方法以及常见的线程问题。 4. IO 流:Java 中的 IO 流用于读写数据,是编写高效程序的必备技能。 5. 网络编程:Java 是一种网络编程的首选语言,高级程序员需要掌握网络编程的方法,以及如何创建客户端/服务器应用程序。 6. 数据库编程:Java 编程中,数据库编程是非常重要的一部分,高级程序员需要掌握如何使用数据库,以及如何使用 Java 进行数据库编程。 7. 设计模式:设计模式是高级程序员必备的知识,学习设计模式可以帮助编写出优秀、易维 ### 回答2: Java是一种跨平台的编程语言,在进行高级程序开发时,需要掌握一系列的知识体系。下面我将详细介绍Java高级程序员需要掌握的知识体系结构。 1. Java语言基础:学习Java语言的核心特性,包括基本语法、数据类型、运算符、流程控制、异常处理等。理解Java面向对象的特性,如封装、继承、多态等,同时熟悉Java内存管理和垃圾回收机制。 2. 数据结构与算法:掌握常见的数据结构,如数组、链表、栈、队列、树、图等,理解它们的原理和应用场景,并能够分析和解决常见的算法问题。 3. 多线程与并发:熟悉Java多线程编程,了解线程的生命周期、同步与互斥、线程安全等概念。掌握Java提供的线程相关的API和工具,能够编写高效、安全的多线程代码。 4. 网络编程:掌握Java网络编程的基本知识,包括Socket编程、TCP/IP协议、HTTP协议等。理解网络通信的原理,并能够开发基于网络的应用程序。 5. 数据库与持久化:熟悉关系型数据库的基本原理和常用操作,如SQL语句编写、事务控制、索引等。了解Java的持久化技术,如JDBC、Hibernate、MyBatis等,能够进行数据库的连接和操作。 6. 设计模式:熟悉常见的设计模式,如单例模式、工厂模式、观察者模式等,理解它们的应用场景和实现原理,能够根据需求选择和应用适当的设计模式。 7. 框架与中间件:熟悉常用的Java框架和中间件,如Spring、Spring MVC、Spring Boot、MyBatis等,能够利用这些框架快速开发高效、可维护的应用程序。 8. 性能调优与监控:掌握Java性能调优的基本方法和工具,能够定位和解决应用程序的性能瓶颈,并进行性能调优优化。了解监控工具的使用,能够进行应用程序的监控和故障排查。 总之,Java高级程序员需要具备扎实的Java语言基础,熟悉常用的开发工具和框架,同时还需要理解计算机基础知识和软件工程原理,能够设计和开发复杂的应用程序,并具备分析和解决实际问题的能力。 ### 回答3: Java高级程序需要掌握以下知识体系: 1. 面向对象编程(OOP):理解面向对象编程的基本概念、原则和思想,包括封装、继承和多态等概念。掌握类、对象、方法、属性、接口等概念和使用。 2. Java核心库:熟悉Java标准库的各个模块,如集合框架、多线程、输入输出、异常处理等。熟悉常用的类和接口,并能灵活运用它们解决问题。 3. 设计模式:掌握常见的设计模式,如单例模式、工厂模式、观察者模式等。了解它们的原理和应用场景,能够用设计模式来解决实际问题。 4. 数据库和SQL:熟悉数据库的基本概念和操作,了解SQL语言的基本语法。能够通过Java程序与数据库进行交互,实现数据的增删改查操作。 5. Web开发:掌握基本的前端开发技术,比如HTML、CSS、JavaScript等。熟悉Java Web开发的框架和技术,如Servlet、JSP、Spring MVC等。了解HTTP协议和前后端交互的原理。 6. 网络编程:理解网络编程的基本概念和原理,能够使用Java进行网络通信。了解TCP/IP协议、Socket编程等相关技术。 7. 并发编程:了解并发编程的基本概念和原理,能够正确地使用多线程和锁机制。熟悉Java中的线程池、同步工具等并发编程相关的类和接口。 8. 性能调优:了解性能调优的基本原则和方法,能够对Java程序进行性能分析和优化。熟悉Java中的性能调优工具和技术。 9. 安全性:了解Java程序安全性的相关知识,包括防止代码注入、数据加密等。理解常见的安全漏洞和攻击方式,并能够采取相应的安全措施。 10. 测试和调试:熟悉测试和调试的基本原则和方法,能够编写有效的单元测试和集成测试。熟练使用调试工具,能够快速定位和解决程序中的问题。 总结起来,Java高级程序员需要掌握面向对象编程、Java核心库、设计模式、数据库和SQL、Web开发、网络编程、并发编程、性能调优、安全性以及测试和调试等知识体系。这些知识体系构成了Java高级程序员的核心能力,能够帮助他们设计、开发和维护复杂的Java应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值