Java学习笔记(三)——封装、继承、多态
一、封装
概念:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
实现步骤:
修改属性的可见性——设为private。
创建getter/setter方法——用于属性的读写。
在getter/setter方法中加入属性控制语句——对属性值的合法性进行判断。
包:
作用:
管理Java文件;解决同名文件冲突。
定义名:
package 包名
必须放在Java源程序的第一行,包名间可以用“.”隔开。
系统中的包:
java.(功能).(类)
java.lang.(类)——包含Java语言基础的类
java.util.(类)——包含Java语言中各种工具类
java.io.(类)——包含输入、输出相关功能的类
包的使用:
(1)import 包名
(2)Java中包的命名规范是全小写字母拼写
(3)~~.*——加载其下所有文件
访问修饰符:
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
this关键字:
内部类:
定义:
作用:
分类:
成员内部类(普通内部类):
静态内部类(static修饰的内部类):
方法内部类(内部类定义在外部类的方法中,方法内部类只在该方法内可以使用):
二、继承(类与类的一种关系,Java中的继承是单继承)
优势:
语法规则:
方法的重写:
继承的初始化顺序:
final关键字:
super关键字:
object类:
object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承object类。
tostring()方法:返回对象的哈希码(对象地址字符串),可以通过重写tostring()方法表示出对象的属性。
equals()方法:比较的是对象的引用是否指向同一个内存地址。一般情况下比较两个对象时比较的是值是否一致,所以要进行重写。
三、多态(继承是多态的实现基础)
对象的多种形态:
1、引用多态:
2、方法多态:
引用类型转换:
抽象类(abstract class):
1、语法定义:
2、应用场景:
3、作用:
4、使用规则:
接口:
1、接口概念:
2、接口定义:
3、使用接口:
如果要继承父类,继承父类必须在实现接口之前。
四、UML
Java学习笔记(三)——封装、继承、多态的更多相关文章
- java学习笔记6--类的继承、Object类
接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...
- Java学习笔记(十)——多态
一.多态 1.对象的多种形态 (1)引用多态: 父类的引用可以指向本类的对象 父类的引用可以指向子类的对象 (2)方法多态: 创建本类对象时,调用的方法为本类方法: 创建子类对象时,调用的方法是子类方 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- C#学习笔记_10_设计模式&继承&多态
10_设计模式&继承&多态 设计模式 由前人总结的用来解决特定问题的解决方案 单例模式 在一个项目的不同模块中获取对象,获取到的是同一个对象 代码 继承 概念:如果多个类中具有相同的字 ...
- Java学习笔记之封装与继承
封装 1,将属性定义为私有的(private) 不能通过 对象名.属性 来直接访问,但是可以通过方法来间接的访问, 2,封装的意义:公有属性可以被随意修改,并且不能被程序察觉.封装后,别人通过 ...
- JAVA的三大特征 封装继承多态- 简单总结
简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...
- 深入理解Java面向对象三大特性 封装 继承 多态
1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类 ...
- Java 学习笔记(7)——接口与多态
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...
- Java学习笔记三.3
9.异常处理:Java中的异常处理对象就是将以前的if语句进行的判断进行抽象化,并形成的一套错误处理体系.最顶端是Throwable,接着是Error,Exception,其中Exception又明显 ...
- Java学习笔记三.2
5.继承 //Java中所有对象都显式/隐式的继承子Object类 class fu{ fu(){ System.out.println("fu..."+getNum()); sh ...
随机推荐
- js 策略模式 实现表单验证
策略模式 简单点说就是:实现目标的方式有很多种,你可以根据自己身情况选一个方法来实现目标. 所以至少有2个对象 . 一个是策略类,一个是环境类(上下文). 然后自己就可以根据上下文选择不同的策略来执 ...
- JavaScript面试技巧之数组的一些不low操作
本文主要从应用来讲数组api的一些骚操作; 如一行代码扁平化n维数组.数组去重.求数组最大值.数组求和.js排序.对象和数组的转化等: 上面这些应用场景你可以用一行代码实现? 1.扁平化n维数组 1. ...
- 学用纯CSS打造可折叠树状菜单
随着CSS3的发布,国外研究正如火如荼,但在国内还有很多人抱着IE不支持CSS3的想法,始终无动于衷不肯去学习.但是历史告诉我们,好的东西必将盛行,CSS3也终将也会替代CSS2,下面就和大家分享一个 ...
- element-ui 时间日期选择器格式化后台需要的格式
<el-date-picker v-model="startTime" type="datetime" format="yyyy-MM-dd H ...
- GitHub for Windows离线安装包
国内安装github客户端,真的很痛!! 偶然找到了离线安装包,感谢作者的资源分享!!! 地址:http://download.csdn.net/download/lyg468088/8723039? ...
- BZOJ 2463: [中山市选2009]谁能赢呢?(智商)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3110 Solved: 2250[Submit][Status][Discuss] Descript ...
- 2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名
续VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview ...
- 通过 python ssh库连接并发送命令给设备
import paramiko import time hostname = '192.168.248.156' port = 22 user = 'zhou' passwd = ' paramiko ...
- 喜闻乐见-Android LaunchMode
launchMode,通俗点说,就是定义了Activity应该如何被launch的.那么这几种模式的区别以及应用场景,会有何不同呢?谷歌是基于什么原因设计这几种模式的呢?这几种模式背后的工作原理是什么 ...
- gitlab runner安装与使用
今天来讲一下如何使用gitlab-runner 下载runner,根据自己对应服务器的型号自行选择下载: # Linux x86- sudo wget -O /usr/local/bin/gitlab ...