JAVA学习IO(1)
面向过程和面向对象的区别:
面向过程:把问题分析成一个一个步骤组成的过程
面向对象:从一个问题中分析出各个功能对象,并描述各个功能在整个解决问题的步骤的行为.
面向对象的3大特征:
封装,继承,多态
封装:把多个异构的属性包裹在一个专门的类里面常用于异构数据的传递。
java中设置的访问权限:
继承:指的是两个类之间的关系,为父子关系,被继承者为父类,继承者为子类,一个子类继承一个父类,则继承了父类的属性和方法。
继承的特点:
1,一个子类只能继承一个父类,一个父类可被多个子类继承.
2,子类继承父类所有属性和方法
3,子类可以对父类的方法进行重写和覆盖.
子类的对象可以赋值给父类的数据类型,则只能调用父类的属性和方法。但此时若子类重写了父类的属性或方法,则调用子类对父类重写的属性和方法.
关键字:extends. 例如A(子) entends B(父)
什么时候用继承:
当多个类里面有共同的方法/属性的时候,我们可以把公共代码抽取到一个公共的父类中,达到代码公用的作用。
子类与父类的构造函数有什么关系?
当我们new 一个对象的时候,JVM会自动调用这个类对应的构造函数,构造函数可以写多个,可以接受参数,因此我们可以有多种方式去创建一个对象。如果不写,系统会默认提供一个无参的构造,如果写了,就不提供了。
如果一个子类继承了一个父类,在创建这个子类的对象之前,他的父类对象必定会先创建。
*默认情况下,会先直接调用父类的无参构造,然后再调用子类对应的构造函数,因此,如果这时父类中只有有参的构造函数是不行的
*子类也可以在自己的构造函数中通过super(参数)显式调用对应的父类构造(有参/无参)
this与super 两个关键字有何作用?
this:指的是当前本类对象;super,指的是当前父类对象
this(参数):调用本类的构造函数;super(参数):调用父类的构造函数
什么是接口?如何实现一个接口?
接口是一个特殊的“类”,一个接口里面的方法只有定义,没有实现。
一个类可以实现一个接口,这个类就称为这个接口的实现类。
接口及其实现类有什么特点?
1、接口中的方法不能有实现
2、接口不能new
3、一个类实现一个接口,必须实现该接口的所有方法,同时这个类也能定义自己的方法
4、一个类可以同时实现多个接口,一个接口也能同时被多个类实现.(实现类关键字: implements)
5、一个实现类的对象可以赋值给其接口的数据类型,但这样只能调用接口中定义的属性和方法(同继承)
什么时候使用接口?
接口,就是用于定义一个纯粹的模型或者规范,让开发者去实现这个规范。
接口可以支持多继承吗?为什么?
可以,原因跟一个类可以同时实现多个接口一样,因为接口中的方法都只是定义。
什么是多态?多态有哪些表现形式?
多态,就是多种状态,主要表现在方法重写(或者接口方法实现)上。
面向对象的多态性,无疑增加了系统的扩展性.
与方法重写这一概念相似的是方法重载,方法重载,其实就是多个方法,同名不同参数(有一些说法认为这也是多态的表现之一,但更多的认为不是)
什么是抽象类?
抽象类,就是普通类与接口之间一个过渡的特殊类,里面允许定义没有实现(抽象方法),同时允许有实现的普通方法.
关键字:abstract
抽象类有什么特点:
1、一个抽象类里面允许有抽象方法,也允许有非抽象类,只要在定义类的时候加上abstract关键字,那么这个类就是抽象类(即不一定要有抽象方法,只是没有抽象方法的抽象类没有意义 )
接口其实就是一个严格的抽象类,里面不允许有非抽象方法,因此接口中的方法定义可以把abstract省缺。
2、与接口一样抽闲类不能new.
3、子类继承了抽象父类,可以不实现父类的抽象方法,但是自己也必须定义为抽象类
什么时候使用抽象类?
接口是严格的抽象类,用于定义一个纯粹的模型或者规范,让开发者去实现这个规范。假如,我们在定义一个模型或者规范的同时,需要提供一部分公共的实现,则可以继承一个抽象类并实现其中的抽象方法。
JAVA学习IO(1)的更多相关文章
- Java学习IO流第一天
今日内容介绍 字节流 字符流 1 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流Ou ...
- Java学习IO篇
来吧,同志们,为复习网络编程做准备-- 一.理论准备 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以"流" ...
- Java学习---IO操作
基础知识 1.文件操作 Java语言统一将每个文件都视为一个顺序字节流.每个文件或者结束于一个文件结束标志,或者根据系统维护管理数据中所纪录的具体字节数来终止.当一个文件打开时,一个对象就被创建,同时 ...
- java学习——IO流
字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.在对这个文字进行操作.简单说:字节流+编码表 ---------------------------- ...
- java学习一目了然——IO
java学习一目了然--IO IO是java学习当中很重要的一部分.IO流实现数据的上传下载,即读写数据,包括输入和输出流,输入流指的是将数据以字符或字节形式从外部媒介比如文件.数据库等读取到内存中所 ...
- java的Io流学习
Java中io流的学习(一)File:https://blog.csdn.net/qq_41061437/article/details/81672859 Java中io流的学习(二)FileInpu ...
- Java学习笔记31(IO:Properties类)
Properties类,表示一个持久的j集,可以存在流中,或者从流中加载 是Hashtable的子类 map集合的方法都能用 用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客 ...
- java编程IO简单回顾和学习
java编程IO操作必不可少的,很久不玩IO,回顾一下,写了几个小程序,记录一下,方便查阅和学习. 1.给出一个整数数组,将其写入一个文件,再从文件中读出,并按整数大小逆序打印. package co ...
- Java 学习(9):java Stream & File & IO
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
随机推荐
- 大数据入门:Hadoop安装、环境配置及检测
目录 1.导包Hadoop包 2.配置环境变量 3.把winutil包拷贝到Hadoop bin目录下 4.把Hadoop.dll放到system32下 5.检测Hadoop是否正常安装 5.1在ma ...
- spark 基础开发 Tips总结
本篇博客主要是 sparksql 从初始开发注意的一些基本点以及力所能及的可优化部分的介绍: 所使用spark版本:2.0.0 scala版本:2.11.8 1. SparkSession ...
- vba 批量生成条形图代码
Sub hong3()'' 宏3 宏d Dim a, b As Integer Dim str As String For a = 227 To 947 Step 15 b = a + 5 str = ...
- 10 腾讯云、django2.0、uwsgi、mysql、nginx 部署
1.腾讯云 操作系统 Ubuntu Server 16.04.1 LTS 64位 获取root权限 ubuntu@VM---ubuntu:~$ sudo passwd root Enter new U ...
- 4- 算法练习leetcode.com
0.五大经典算法 动态规划算法----爬楼梯 分治算法-- 贪心算法---零钱问题 回溯算法---迷宫问题 --深度优先 分支限界法 ----广度优先 1.找出下标范围 1.二分法 li = [1,2 ...
- 洛咕 P4131 [WC2005]友好的生物
洛咕 P4131 [WC2005]友好的生物 首先可以发现\(C\)是没有用的,可以乘进所有的权值里面做 考虑没有最后一维的限制,那么两个生物的友好值就是 \(\sum_{i=1}^k|a_i-b_i ...
- Python Machine Learning: Scikit-Learn Tutorial
这是一篇翻译的博客,原文链接在这里.这是我看的为数不多的介绍scikit-learn简介而全面的文章,特别适合入门.我这里把这篇文章翻译一下,英语好的同学可以直接看原文. 大部分喜欢用Python来学 ...
- [BZOJ4883][Lydsy1705月赛]棋盘上的守卫[最小基环树森林]
题意 有一大小为 \(n*m\) 的棋盘,要在一些位置放置一些守卫,每个守卫只能保护当前行列之一,同时在每个格子放置守卫有一个代价 \(w\) ,问要使得所有格子都能够被保护,需要最少多少的代价. \ ...
- [BZOJ4476][JSOI2015]送礼物[分数规划+单调队列]
题意 题目链接 分析 分数规划之后可以得到式子:\(max-min-r*mid+l*mid\geq k*mid\) . 贪心选择,肯定区间的端点是极小或者极大值.特殊处理区间长度 \(\leq L\) ...
- Object C学习笔记3-对象的使用和定义
1. 如何定义一个对象 在面向对象的语言中,定义一个对象是使用Class关键字,而在Object-C中则是使用@interface,@interface用于定义对象的属性和方法,@implementa ...