第二十九节:Java基础知识-类,多态,Object,数组和字符串

前言
Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较。
回顾

类的定义格式:
[类的修饰符] class 类的名称 [extends 父类名称][implements 接口名称列表] {
变量的定义以及变量的初始化;
方法的定义以及方法体;
}
类的修饰符:public,abstract ,final等。
- private
- protected
- public
- default(缺省)
继承
继承是java中的特性,继承可以实现代码的复用性,继承的类为子类,被继承的类为父类,java中不支持多重继承,但可以通过接口实现。
class DemoClass extends SuperClass{
…
}
类的多态性
多态的体现:覆盖与重载
多态
多态是为了提高功能的扩展性,提高复用,为父类的引用指向了子类的对象,多态,多种形态的体现。
父类引用指向子类对象,并调用子类的覆盖方法,就是多态,注意父类的引用不能随便强加转为子类类型,因为强转可能会出错,在转换前先使用
instanceof判断父类是否可以转换为子类
abstract class Animal{
public abstract void eat();
}
多态原理:
Dog d = new Dog();
Animal a = new Dog();
Cat c = new Catt();
Animal aa = new Cat();
向上转型和向下转型
Cat c = new Catt();
Animal aa = new Cat();
Animal a = new Animal();
Cat c = (Cat) a;
向上转型为了提高程序的扩展性,向下转型之前要进行类型的判断,否则容易发生classCastException异常,判断类型的关键字为instanceof
if(a instanceof Cat){
Cat c = (Cat)a;
c.catchMouse();
}else if(a instanceof Dog){
Dog d = (Dog)a;
d.lookHome();
}
Object
Object是类层次结构的根类,存在java.lang.Object中。
| 方法 | 说明 |
|---|---|
| clone() | 创建并返回此对象的一个副本 |
| equals() | 指某个对象是否与此对象“相等” |
| finalize() | 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法 |
| getClass() | 返回对象运行时类 |
| hashCode | 返回该对象的哈希码值 |
| notify() | 唤醒在此对象等待的单个线程 |
| notifyAll() | 唤醒所有线程 |
| toString() | 返回该对象的字符串表示 |
| wait() | 线程等待,直到其他线程调用此对象的notify() 或 notifyAll() |
构造方法:
public Object()
finalize()方法:java的垃圾回收时机Object的toString()方法:返回的是对象的字符串形式Object的equals()方法:比较两个对象是否相等
数组

数组是同种类型的数据集合,数组中放的每个数据为数组中的一个元素,元素的数量为数组的长度,为数组名.length
数组的定义:
数组的数据类型[] 变量名;
数组的数据类型 变量名[];
java数组实际上是对象,通过new创建对象,数组的下标不低于0,也比数组的元素个数小,在使用数组下标时,可能会产生ArrayIndexOutOfBoundsException错误,要小心了。
多维数组
int[][] a = new int[2][3];


数组的使用步骤:
- 声明数组
- 创建数组
- 使用数组元素
字符串
字符串常量
声明字符串变量
创建字符串
获取字符串长度
字符串比较
==:比较两个字符串是否为同一个对象
equals():比较两个字符串的内容是否相同
检索:indexOf()
截取:substring()
替换:replace()
忽略大小写比较:equalsIgnoreCase()
字符串前缀、后缀是否为指定字符串:startWith()、endWith()
字符串转换:parseInt()、parseByte()、parseShort()、parseLong()、parseDouble()
数值转换为字符串:valueOf()
对象的字符串:toString()
结语
- 本文主要讲解 Java基础知识-类,多态,Object,数组和字符串
- 下面我将继续对
Java、Android中的其他知识 深入讲解 ,有兴趣可以继续关注 - 小礼物走一走 or 点赞
第二十九节:Java基础知识-类,多态,Object,数组和字符串的更多相关文章
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)
大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...
- 风炫安全web安全学习第二十九节课 CSRF防御措施
风炫安全web安全学习第二十九节课 CSRF防御措施 CSRF防御措施 增加token验证 对关键操作增加token验证,token值必须随机,每次都不一样 关于安全的会话管理(SESSION) 不要 ...
- 第二十八节:Java基础-进阶继承,抽象类,接口
前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...
- 十九、Java基础--------IO流之字节流
在上一篇文章中介绍了IO体系以及一些基本概念和字符流的相关应用,本文着重介绍字节流的相关操作. 字节流 它的操作与字符流类似,可以参与字符流的定义.读取.写入.处理异常的格式,只不过是处理的数据不同, ...
- java基础知识—类和对象
1.对象的特征---类的属性 每个对象的每个属性都有特定的值 对象的操作---类的方法 2.封装 对象同时具有属性和方法两项属性. 对象的属性和方法同时被封装在一起,共同体现事物的特性,二者相辅相成, ...
- 第二十九节,目标检测算法之R-CNN算法详解
Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmenta ...
- Scala入门到精通——第二十九节 Scala数据库编程
本节主要内容 Scala Mavenproject的创建 Scala JDBC方式訪问MySQL Slick简单介绍 Slick数据库编程实战 SQL与Slick相互转换 本课程在多数内容是在官方教程 ...
- java基础知识—类的方法
1.定义类方法的语法: 访问修饰符 返回值类型 方法名(){ 方法体: } 2.方法名的规范: 1.必须以字母下划线·“—”或“$”开头 2.可以有数字,但不能以数字开头. 3.如果方法名是以多个单词 ...
随机推荐
- JavaScript倒计时实现
/** * 倒计时函数 * @param {String}} endTime 终止时间戳 */ const countDown = (endTime, callback) => { const ...
- 工程C++基础
大家好,我是老A.今天我们要学习的是工程C++,这是一个不可描述的东西.我主要讲的是template. template的用处是装逼,所以很重要. C++配备了函数模板和类模板.函数模板就是我们平时的 ...
- python中的多进程与多线程(二)
1.使用多线程可以有效利用CPU资源,线程享有相同的地址空间和内存,这些线程如果同时读写变量,导致互相干扰,就会产生并发问题,为了避免并发问题,绝不能让多个线程读取或写入相同的变量,因此python中 ...
- Python模块定义和使用
Python中所谓的模块就是一个Python文件,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块.模块由代码.函数或类组成.编程中使用模块不仅可以提 ...
- 关于如何安装使用Git、tortoiseGit、Git@osc
摘要: 讲解git在git@osc上使用的正确入门姿势. 关于Git代码托管的好处,这里就不再进行说明了.相信想去使用的人都应该有所了解啦.在使用开源中国里面的git@osc时,我们得先做入下几个工作 ...
- java遍历实体类的属性和值
代码如下: 实体类: public class User implements Serializable { private static final long serialVersionUID = ...
- 吴裕雄 python深度学习与实践(11)
import numpy as np from matplotlib import pyplot as plt A = np.array([[5],[4]]) C = np.array([[4],[6 ...
- CDH hue下定时执行hive脚步
今天在看oozie时发现能在hue中执行hive 脚本,主要是hue 和 oozie结合使用,下面介绍下怎么使用的,挺恶心的,哈哈(在这里就不哔哔了) 提交oozie定时作业 1.进入hue界 ...
- day36 GIL锁与线程池
多进程与多线程效率对比 # # """ # # 计算密集型 # """ # from threading import Thread # f ...
- 100-days: sixteen
Title: The world's most expensive cities 生活成本最高的城市 For the first time in its 30-year history, the Wo ...