java面向对象的一些知识
(1)this和super关键字的用法
this表示调用本类实例方法和成员变量,this引用就是对一个对象的引用,如this.name 表示本类成员变量name,静态方法中不能使用this关键字。
super关键字的用法:调用父类的构造方法,如super([参数列表]);操作被隐藏的成员变量和被重写的方法。
(2)几种常见的访问修饰符:
private表示私有的,便是在本类是可见的。在其它类中是不可见或者只有通过本类提供的方法来访问它。
protect表示受保护的,表示在本包中是可见的。
public表示公开的,没有什么权限。
属性一般设置为private,表示成员属性,方法一般设为public 也有private,一般private方法是供类内部使用(帮助方法)。
(3)重写(override)和重载(overload):
重写表示在继承过程中对父类的方法进行在重写,其方法名和参数返回值类型是不变的。重载表示同一类的中方法名、返回值类型相同,但是参数类型,参数个数,参数位置的不一样。
(4)面向对象封装的特点:
封装就是将数据和方法包装进类中,加上具体实现的掩藏。其结果就是同时带有特征和行为的数据类型。
(5)里氏替换Lsp,上转型,下转型,如
public void feedDog(Pet p, Food f) {
System.out.println("主人给" + p.getName() + "喂食" + f.getName());
if (p instanceof Dog) {
// Pet d=(Dog)p;
// Food b=(Bone)f;
// d.eatFood(b);
p.eatFood(f);
} else {
System.out.println("请给狗狗喂食!");
}
(5)多态:
广义的多态包括重载(overload)和重写(override),狭义的多态仅指重写。
重写:对多个对象下达同一命令时,根据重写的方法的不同,而有不同的执行结果。
重写多态的三种实现方式:1,直接重写,子类直接重写父类同名同参的方法,父类new一个子类对象,通过父类方法,调用子类重写的方法。
2,抽象类抽象方法的重写(抽象类的一些要点:抽象类不能够实例化,也就是说不能在堆空间给其分配空间;抽象方法只能在抽象类中;实现抽象类的继承,必须重写基类的 抽象方法;抽象方法只声明不实现。通过抽象基类new子类,调用父类.抽象方法()实现多态)
3,接口的重写。接口的概念:a,接口是一套规范,接口中只声明方法 b,实现接口就具有了接口的功能,拓展子类的功能 c,接口可以实现多个,弥补了java单继承的缺 点。
java常见的接口:Collection,List,Iterable,Set,connection,Statement,PerParedStatement,Comparable,Comparator,Runable
其中对象数组在使用Arrays.sort()方法的时候,如果在一段程序代码中只需实现一种排序方式,则需要对象类实现Comparable接口。如果需要同一段程序中实现多种排序, 则需要写其他排序规则的类来实现Comparator接口。
(6)接口和抽象类的异同点。相同点都是多态的实现方式,都实现了重写。不同点是:抽象类属于继承,抽象类的继承类似与“is a”的语句,而继承接口类似与“like a”的语句。
java面向对象的一些知识的更多相关文章
- Java面向对象 其他对象
Java面向对象 其他对象 知识概要: (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date Calendar (6)Math 本 ...
- 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- JAVA面向对象-----面向对象(基础预备知识汇总)
终于整理好了面向对象基础预备知识,但是有点多,所以你们懂的,贴图,较长的代码我还是会排版出来的,我不想把时间浪费在排版上在word里排版一次已经很浪费时间了,所以请谅解. public class C ...
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- Java面向对象的封装
封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...
- Java面向对象的三大特征
Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
[重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
随机推荐
- 第8.19节 使用__doc__访问Python文档字符串(DocStrings )
__doc__特殊变量用于查看类.函数.模块的帮助信息,这些帮助信息存放在文档字符串中. 一. 关于文档字符串 关于文档字符串前面很多章节提到过,DocStrings 文档字符串用于程序的文档说明,并 ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项whatsThis、toolTip、statusTip提示信息访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget表格部件的QTableWidgetItem项提示信息包括工具栏提示.状态栏提 ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的sortingEnabled属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的sortingEnabled属性用于控制视图中的数据是否启用按表头排序, ...
- PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件的icon属性和iconSize属性
icon属性 icon属性保存按钮上展示的图标,图标的缺省大小由图形界面的样式决定,但可以通过 iconSize 属性进行调整. 图标的几种子属性状态的含义与QWidget的windowIcon属性相 ...
- python 练习洗牌
生成随机数需要引入random模块,学习下random模块中常用的几个函数: random.random() 用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.un ...
- SpringMVC拦截html页面访问
在 web.xml 配置文件 原本的前端控制器后面加一个 servlet-mapping 即可简单解决 虽能解决 html 访问的问题,但不清楚是否对后面的操作产生何种影响 <servlet&g ...
- redis学习之——持久化RDB 和AOF
RDB: 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里.rdb 保存的是dump.rdb文件 RDB工作原理: Redis会 ...
- python学习之路 初识xml
import requests from xml.etree import ElementTree as ET r = requests.get('http://www.webxml.com.cn// ...
- Java程序执行过程及内存机制
本讲将介绍Java代码是如何一步步运行起来的,其中涉及的编译器,类加载器,字节码校验器,解释器和JIT编译器在整个过程中是发挥着怎样的作用.此外还会介绍Java程序所占用的内存是被如何管理的:堆.栈和 ...
- sqoop进行将Hive 词频统计的结果数据传输到Mysql中
使用sqoop进行将Hive 词频统计的结果数据传输到Mysql中. mysql准备接受数据的数据库与表 hive准备待传输的数据 sqoop进行数据传输 mysql查看传输结果 二:电子书 ...