JAVA基础学习--面向对象
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基础学习--面向对象相关推荐
- java基础学习面向对象之匿名内部类 五-13
内部类 一个类定义在另一个类的里面,对立面那个类就叫做内部类,或者嵌套类. 特点,内部类可以直接访问外部类中的成员.包括私有成员.而外部类要访问内部类中的成员必须要建立内部类对象. 代码 packag ...
- Java基础学习——第六章 面向对象编程(下)
Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- java基础学安卓开发_Android开发学习路线之Java基础学习
原标题:Android开发学习路线之Java基础学习 很多Android学习开发者刚入手Android开发技术时,稍微有点迫切.任何的开发技术都有其基础语言,Android应用程序开发是以Java语言 ...
- Java基础学习汇总
Java基础学习汇总 java语言基础 java函数和数组 java面向对象 java异常 整理用,早就停更... 写作不易,如果您觉得写的不错,欢迎给博主点赞.收藏.评论.收藏来一波~让博主更有动力 ...
- 尚学堂JAVA基础学习笔记_2/2
尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...
- Java 基础学习-Java语言概述
Java 基础学习 第一章 Java语言概述 回顾java基础知识,进行整理记录. 文章目录 Java 基础学习 前言 一. Java语言发展史(了解) 二.Java语言跨平台原理(理解) 三.JRE ...
- Java基础学习——方法
Java基础学习--方法 前言 本文将介绍有关Java面向对象编程的知识之一:方法:其中包括方法的概念,三类方法的格式.方法的重载以及方法的内存 方法的概念 方法是程序中最小的执行单元 方法定义:将一 ...
- Java基础(08) 面向对象
Java基础(八)-- 面向对象 面向对象(Object Oriented Programming, 简称OOP )是Java基础学习的重点,必须掌握每个细节,接下来对面向对象的学习主要围绕以下三 ...
最新文章
- lab_2 Selenium
- 报告 | 中国科学院发布地球大数据报告
- 优化算法optimization:AdaGrad
- python教程书籍-大牛推荐的10本学习 Python 的好书
- Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPressGhost、Jenkins、Gitlab)
- 百年难得一见!阿里园区惊现双月争辉奇观!
- 416B. Art Union
- 阿里云 centos mysql_在阿里云的CentOS环境中安装配置MySQL的教程
- C++中相对路径与绝对路径以及斜杠与反斜杠的区别 及 处理代码
- Qt之QThread用法
- 2017.6.5 YY的GCD 失败总结
- xp电脑多少位怎么看_如何查看电脑是什么操作系统和多少位?
- 悬浮球不用权限_Android 实现无需权限的悬浮球效果,可适配至Android 10
- 对话阿里云李飞飞:云原生数据库的时代来了
- [Python] random.uniform( ) 函数教程与实例解析
- Xcode 模拟器复制解决方案
- (转)VeraCrypt : 怎么加密不被发现?
- top 命令按内存和 cpu 排序
- SQL Prompt10 安装激活教程,让你写sql 如鱼得水
- 华为od面试全流程总结
热门文章
- cpp-httplib实现HTTP Server接收带参数的URL
- Microsoft推出适用于Win 8.1和Win10的KB 4010250 Flash Player更新
- RecyclerView底部刷新实现详解
- 通常来讲,要制定一个清晰的、可执行的计划,需要遵循 SMART原则
- echarts雷达图样式配置
- JavaScript【十一】2022.5.23第十三周
- 固态硬盘到底有多少种接口
- 安装Win7codecs 后rmvb缩略图倒置的解决方法
- AVR 单片机与GCC 编程之存储器操作
- 试论计算机网络课程教学论文,试论高校计算机基础课程网络化教学