java oop 基础
1.如果将一个类打包,使用该类的时候,必须使用该类的全名,java编译器才能找到。
2.也可以使用import 导入这个包。
3.可以不需要import语句 直接使用 java.lang包中的类。
4.权限修饰符java中一共有四个: private,default ,protected,public. 修饰符置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限。
| 修饰符 | 类内部 | 同一个包 | 子类 | 任何地方 |
|---|---|---|---|---|
| private | Yes | |||
| default | Yes | Yes | ||
| protected | Yes | Yes | Yes | |
| public | Yes | Yes | Yes | Yes |
对于class的权限修饰只可以用 public 和default。
public类可以在任意地方被访问
default类只可以被同一个包内部的类访问
java中使用 extends关键字实现类的继承机制。通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方法)。
java只支持单继承,不允许多继承:一个子类只能有 一个基类,一个基类可以派生多个子类。
子类的构造过程中必须调用基类的构造方法。
子类可以再自己的构造方法中使用 super(argument_list)调用基类的构造方法。
使用this(argument_list)调用本类的另外的构造方法。
如果调用super,必须写在子类构造方法的第一行。
如果子类的构造方法中没有显式调用基类构造方法,则系统默认调用基类无参数的构造方法。
如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,编译出错。
9.Object类中定义有
public boolean equals(Object obj)方法,提供定义对象是否“相等”的逻辑。方法定义为 x.equals(y),当x和y所引用的对象是同一个对象的引用时返回true否则返回false。10.j2sdk提供的一些类,如String Date等,重写了Object的equals方法,调用这些类的 equals方法,当引用的对象是同一类对象且属性内容相等时(并不一定是相同对象)返回true,否则返回false。
11.可以根据需要在用户自定义类型中重写equals方法。
12.对象转型
一个基类的引用类型变量可以“指向”其子类的对象。
一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
可以使用
引用变量 instanceof 类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。子类的对象可以当作基类的对象来使用称作 向上转型,反之称为向下转型。
13.多态的必要条件:
1.要有继承
2.要有重写
3.父类引用指向子类对象
14.用abstract修饰的类叫抽象类,修饰的方法叫抽象方法。
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。 抽象类不能被实例化。 抽象方法只需声明 不需要实现。final的变量的值不能被改变(final的成员变量、final的局部变量(形参)),final的方法不能被重写,final的类 不能被继承。
16.接口 :多个无关的类可以实现同一个接口。一个类可以实现多个无关的接口。
与继承关系类似,接口与实现类之间存在多态性。 接口是抽象方法和常量值定义的集合。
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
17.接口里声明的舒兴国默认为 public static final,也只能是 public static final的。接口中只能定义抽象方法,而且这些方法默认是public的 ,也只能是public的。接口可以继承其他接口,并添加新的属性和抽象方法。
java oop 基础的更多相关文章
- JAVA OOP 基础知识提纲
OOP: 面向对象: 认识事物的一个过程,是整体(特征/行为) 认识事物的方式.人类认识事物的自然思维习惯. 对象及类 对象是实实在在具体存在的东西,主要是从两个角度(行为,特征)去观察 类:是一组具 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 面向对象(OOP)--OOP基础与this指向详解
前 言 学过程序语言的都知道,我们的程序语言进化是从“面向机器”.到“面向过程”.再到“面向对象”一步步的发展而来.类似于汇编语言这样的面向机器的语言,随着时代的发展已经逐 ...
- Java工程师 基础+实战 完整路线图(详解版)
Java工程师 基础+实战 完整路线图(详解版) Java 基础 Java 是一门纯粹的面向对象的编程语言,所以除了基础语法之外,必须得弄懂它的 oop 特性:封装.继承.多态.此外还有泛型.反射 ...
- java继承基础详解
java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...
- java封装基础详解
java封装基础详解 java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节. 封装的特性是对属性来讲的. 封装的目标就是要实现软件部件的"高 ...
- Java以基础类库
Java以基础类库JFC(Java Foundation Class)的形式为程序员提供编程接口API,类库中的类按照用途归属于不同的包中. (一)java.lang包 Java最常用的包都属于该包, ...
- Java SE 基础:注释
Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...
- Java SE 基础:标识(zhì)符
Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...
随机推荐
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_12-页面静态化-页面静态化流程
需要知道数据结构,然后去做模板标签.首先需要获取页面的数据模型.下面的每一条记录都代表一个页面. 比如这个轮播图.就需要提前给这个轮播图编写一个模板 有很多的页面如果知道每个页面的dataUrl.例如 ...
- Ubuntu 18.04设置1920*1080
Ubuntu升级后,发现分辨率没有1920*1080,在网上寻找了一个文章解决办法如下. 方案一(临时性,重启会失效): 1.打开终端.输入:cvt 1920 1080 出现有modeline 的提示 ...
- array_splice 在数组某位置插入数据
$arr=array('a','b','c','d','e','f','g');//目标数组 $i_arr=array(');//要插入的数组 $n=;//插入的位置 array_splice($ar ...
- spring注入注解
常见注解有Autowired.Resource.Qualifier.Service.Controller.Repository.Component. @Resource装配顺序 1. 如果同时指定了n ...
- webdriervAPI基础元素定位
from selenium import webdriver driver = webdriver.Chorme() driver.get("http://www.baidu.co ...
- Bilateral Multi-Perspective Matching for Natural Language Sentences---读书笔记
自然语言句子的双向.多角度匹配,是来自IBM 2017 年的一篇文章.代码github地址:https://github.com/zhiguowang/BiMPM 摘要 这篇论文主要 ...
- 集群架构01.Nginx初步安装配置
1.切换163yum 源,环境介绍 [root@moban ~]# cat /etc/redhat-release CentOS release 6.5 (Final) mv CentOS-Base. ...
- 修改Ubuntu屏幕的分辨率
最近重新装了一下环境,用vnc连接服务器,发现分辨率过低,于是查了一下如何修改分辨率,将其调高. 编辑/etc/default/grub 搜索"#GRUB_GFXMODE=640x4 ...
- 【转帖】lmbench的简单使用
https://www.cnblogs.com/mutong1228/p/10485840.html 下载地址 http://www.bitmover.com/lmbench/ tar -zxvf l ...
- 【AtCoder】AGC009
AGC009 A - Multiple Array 从后往前递推即可 #include <bits/stdc++.h> #define fi first #define se second ...