JAVA基础学习–面向对象

1.面向对象与面向过程:

面向过程:就代表从头到位,每一步都需要我们来完成,例如洗衣服,首先收拾脏衣服、接上水、到洗衣液、搓、倒水、拧干、晾晒。每一步都需要我们来完成。

面向对象:就是将这些步骤和功能在进行封装为对象,通过对象为基础来完成各个事务。例如洗衣服,你需要将衣服扔进洗衣机,然后出来的就是我们需要的干净拧干的衣服了,就不需要每一步亲自操作。

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

2.封装:

private是一个关键字, 也是访问权限修饰符的一种, 它可以用来修饰类的成员,通过private关键字和getting和setting方法封装成员变量,提高代码的安全性。

构造方法:建议定义类时 我们给出无参构造, 方便用户调用,一般是两个,无参和全参。

3.继承:

多个类中存在相同属性和行为时, 将这些内容抽取到单独的一个类中, 那么这多个类就无需再定义这些属性和行为了, 只要继承那个类即可. 这个关系, 就叫继承。

通过extends关键字来实现类与类的继承(public class 类A extends 类B)

好处:提高了代码的复用性、提高了代码的可维护性、让类与类之间产生关系, 是多态的前提。

弊端:让类与类之间产生了关系, 也就让类的耦合性增强了。

开发原则:高内聚,低耦合。(内聚: 指的是类自己独立完成某些事情的能力。耦合: 指的是类与类之间的关系。)

当成员变量或成员方法同时出现在子类和父类中时,调用时会遵循就近原则。

this关键字时调用本类的成员变量、构造方法、成员方法,super关键字是调用父类的成员变量、构造方法、成员方法。

子类中出现和父类一模一样的方法时,称为方法重写。方法重写要求返回值的数据类型也必须一样。

4.多态:

多态就是同一个事物(或者对象)在不同时刻表现出来的不同状态。

多态要求:要有继承关系、要有方法重写、要有父类引用指向子类对象。

向上转型:父类型 对象名 = new 子类型()

eg:Animal cat = new Cat() ,前面是动物类,而后面是他的子类猫类。

弊端:父类引用不能访问子类的特有功能,需要使用向下转型的方式解决。

向下转型:子类型 对象名 = (子类型)父类引用

eg:Animal cat = new Cat(); Cat c = (Cat)cat;

5.final和static:

final是一个关键字, 表示最终的意思, 可以修饰类, 成员变量, 成员方法

修饰的类: 不能被继承, 但是可以继承其他的类。

修饰的变量: 是一个常量, 只能被赋值一次。

修饰的方法: 不能被子类重写。

static是一个关键字, 表示静态的意思, 可以修饰成员变量,成员方法。

非静态方法能访问所有成员(非静态变量,非静态风法,静态变量,静态风法)静态方法只能访问静态成员。

6.抽象类:

在Java中,一个没有方法体的方法应该定义为抽象方法, 而类中如果有抽象方法,该类必须定义为抽象类。

抽象类中不一定有抽象方法, 有抽象方法的类一定是抽象类。

抽象类的子类:

如果是普通类, 则必须重写父抽象类中所有的抽象方法.

如果是抽象类, 则可以不用重写父抽象类中的抽象方法.

抽象类中可以有变量, 常量, 构造方法, 抽象方法和非抽象方法。

抽象类不能实例化–可以通过多态的方式, 创建其子类对象, 来完成抽象类的实例化, 这也叫: 抽象类多态。

7.接口:

接口用interface关键字修饰.

类和接口之间是实现关系, 用implements关键字表示.

接口不能实例化-- 可以通过多态的方式, 创建其子类对象, 来完成接口的实例化.这也叫: 接口多态.

接口的子类:

如果是普通类, 则必须重写父接口中所有的抽象方法.

如果是抽象类, 则可以不用重写父接口中的抽象方法.

接口中有且只能有常量或者抽象方法, 原因是:成员变量有默认修饰符: public static final,而成员方法有默认修饰符: public abstract。

类和接口的关系:

类与类之间: 继承关系, 只能单继承, 不能多继承, 但是可以多层继承.

类与接口之间: 实现关系, 可以单实现, 也可以多实现. 还可以在继承一个类的同时实现多个接口.

接口与接口之间: 继承关系, 可以单继承, 也可以多继承.

JAVA基础学习--面向对象相关推荐

  1. java基础学习面向对象之匿名内部类 五-13

    内部类 一个类定义在另一个类的里面,对立面那个类就叫做内部类,或者嵌套类. 特点,内部类可以直接访问外部类中的成员.包括私有成员.而外部类要访问内部类中的成员必须要建立内部类对象. 代码 packag ...

  2. Java基础学习——第六章 面向对象编程(下)

    Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...

  3. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  4. java基础学安卓开发_Android开发学习路线之Java基础学习

    原标题:Android开发学习路线之Java基础学习 很多Android学习开发者刚入手Android开发技术时,稍微有点迫切.任何的开发技术都有其基础语言,Android应用程序开发是以Java语言 ...

  5. Java基础学习汇总

    Java基础学习汇总 java语言基础 java函数和数组 java面向对象 java异常 整理用,早就停更... 写作不易,如果您觉得写的不错,欢迎给博主点赞.收藏.评论.收藏来一波~让博主更有动力 ...

  6. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  7. Java 基础学习-Java语言概述

    Java 基础学习 第一章 Java语言概述 回顾java基础知识,进行整理记录. 文章目录 Java 基础学习 前言 一. Java语言发展史(了解) 二.Java语言跨平台原理(理解) 三.JRE ...

  8. Java基础学习——方法

    Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...

  9. Java基础(08) 面向对象

    Java基础(八)-- 面向对象 ​ 面向对象(Object Oriented Programming, 简称OOP )是Java基础学习的重点,必须掌握每个细节,接下来对面向对象的学习主要围绕以下三 ...

最新文章

  1. lab_2 Selenium
  2. 报告 | 中国科学院发布地球大数据报告
  3. 优化算法optimization:AdaGrad
  4. python教程书籍-大牛推荐的10本学习 Python 的好书
  5. Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPressGhost、Jenkins、Gitlab)
  6. 百年难得一见!阿里园区惊现双月争辉奇观!
  7. 416B. Art Union
  8. 阿里云 centos mysql_在阿里云的CentOS环境中安装配置MySQL的教程
  9. C++中相对路径与绝对路径以及斜杠与反斜杠的区别 及 处理代码
  10. Qt之QThread用法
  11. 2017.6.5 YY的GCD 失败总结
  12. xp电脑多少位怎么看_如何查看电脑是什么操作系统和多少位?
  13. 悬浮球不用权限_Android 实现无需权限的悬浮球效果,可适配至Android 10
  14. 对话阿里云李飞飞:云原生数据库的时代来了
  15. [Python] random.uniform( ) 函数教程与实例解析
  16. Xcode 模拟器复制解决方案
  17. (转)VeraCrypt : 怎么加密不被发现?
  18. top 命令按内存和 cpu 排序
  19. SQL Prompt10 安装激活教程,让你写sql 如鱼得水
  20. 华为od面试全流程总结

热门文章

  1. cpp-httplib实现HTTP Server接收带参数的URL
  2. Microsoft推出适用于Win 8.1和Win10的KB 4010250 Flash Player更新
  3. RecyclerView底部刷新实现详解
  4. 通常来讲,要制定一个清晰的、可执行的计划,需要遵循 SMART原则
  5. echarts雷达图样式配置
  6. JavaScript【十一】2022.5.23第十三周
  7. 固态硬盘到底有多少种接口
  8. 安装Win7codecs 后rmvb缩略图倒置的解决方法
  9. AVR 单片机与GCC 编程之存储器操作
  10. 试论计算机网络课程教学论文,试论高校计算机基础课程网络化教学