前言

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

回顾

类的定义格式:

[类的修饰符] class 类的名称 [extends 父类名称][implements 接口名称列表] {
变量的定义以及变量的初始化;
方法的定义以及方法体;
}

类的修饰符:publicabstractfinal等。

  • 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()

  1. finalize()方法:java的垃圾回收时机
  2. Object的toString()方法:返回的是对象的字符串形式
  3. Object的equals()方法:比较两个对象是否相等

数组

数组是同种类型的数据集合,数组中放的每个数据为数组中的一个元素,元素的数量为数组的长度,为数组名.length

数组的定义:

数组的数据类型[] 变量名;

数组的数据类型 变量名[];

java数组实际上是对象,通过new创建对象,数组的下标不低于0,也比数组的元素个数小,在使用数组下标时,可能会产生ArrayIndexOutOfBoundsException错误,要小心了。

多维数组

int[][] a = new int[2][3];

数组的使用步骤:

  1. 声明数组
  2. 创建数组
  3. 使用数组元素

字符串

字符串常量

声明字符串变量

创建字符串

获取字符串长度

字符串比较

==:比较两个字符串是否为同一个对象

equals():比较两个字符串的内容是否相同

检索:indexOf()
截取:substring()
替换:replace()
忽略大小写比较:equalsIgnoreCase()
字符串前缀、后缀是否为指定字符串:startWith()、endWith()
字符串转换:parseInt()、parseByte()、parseShort()、parseLong()、parseDouble()
数值转换为字符串:valueOf()
对象的字符串:toString()

结语

  • 本文主要讲解 Java基础知识-类,多态,Object,数组和字符串
  • 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

第二十九节:Java基础知识-类,多态,Object,数组和字符串的更多相关文章

  1. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  2. 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)

              大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out  of  bag  data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...

  3. 风炫安全web安全学习第二十九节课 CSRF防御措施

    风炫安全web安全学习第二十九节课 CSRF防御措施 CSRF防御措施 增加token验证 对关键操作增加token验证,token值必须随机,每次都不一样 关于安全的会话管理(SESSION) 不要 ...

  4. 第二十八节:Java基础-进阶继承,抽象类,接口

    前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...

  5. 十九、Java基础--------IO流之字节流

    在上一篇文章中介绍了IO体系以及一些基本概念和字符流的相关应用,本文着重介绍字节流的相关操作. 字节流 它的操作与字符流类似,可以参与字符流的定义.读取.写入.处理异常的格式,只不过是处理的数据不同, ...

  6. java基础知识—类和对象

    1.对象的特征---类的属性 每个对象的每个属性都有特定的值 对象的操作---类的方法 2.封装 对象同时具有属性和方法两项属性. 对象的属性和方法同时被封装在一起,共同体现事物的特性,二者相辅相成, ...

  7. 第二十九节,目标检测算法之R-CNN算法详解

    Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmenta ...

  8. Scala入门到精通——第二十九节 Scala数据库编程

    本节主要内容 Scala Mavenproject的创建 Scala JDBC方式訪问MySQL Slick简单介绍 Slick数据库编程实战 SQL与Slick相互转换 本课程在多数内容是在官方教程 ...

  9. java基础知识—类的方法

    1.定义类方法的语法: 访问修饰符 返回值类型 方法名(){ 方法体: } 2.方法名的规范: 1.必须以字母下划线·“—”或“$”开头 2.可以有数字,但不能以数字开头. 3.如果方法名是以多个单词 ...

随机推荐

  1. JavaScript倒计时实现

    /** * 倒计时函数 * @param {String}} endTime 终止时间戳 */ const countDown = (endTime, callback) => { const ...

  2. 工程C++基础

    大家好,我是老A.今天我们要学习的是工程C++,这是一个不可描述的东西.我主要讲的是template. template的用处是装逼,所以很重要. C++配备了函数模板和类模板.函数模板就是我们平时的 ...

  3. python中的多进程与多线程(二)

    1.使用多线程可以有效利用CPU资源,线程享有相同的地址空间和内存,这些线程如果同时读写变量,导致互相干扰,就会产生并发问题,为了避免并发问题,绝不能让多个线程读取或写入相同的变量,因此python中 ...

  4. Python模块定义和使用

    Python中所谓的模块就是一个Python文件,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块.模块由代码.函数或类组成.编程中使用模块不仅可以提 ...

  5. 关于如何安装使用Git、tortoiseGit、Git@osc

    摘要: 讲解git在git@osc上使用的正确入门姿势. 关于Git代码托管的好处,这里就不再进行说明了.相信想去使用的人都应该有所了解啦.在使用开源中国里面的git@osc时,我们得先做入下几个工作 ...

  6. java遍历实体类的属性和值

    代码如下: 实体类: public class User implements Serializable { private static final long serialVersionUID = ...

  7. 吴裕雄 python深度学习与实践(11)

    import numpy as np from matplotlib import pyplot as plt A = np.array([[5],[4]]) C = np.array([[4],[6 ...

  8. CDH hue下定时执行hive脚步

        今天在看oozie时发现能在hue中执行hive 脚本,主要是hue 和 oozie结合使用,下面介绍下怎么使用的,挺恶心的,哈哈(在这里就不哔哔了) 提交oozie定时作业 1.进入hue界 ...

  9. day36 GIL锁与线程池

    多进程与多线程效率对比 # # """ # # 计算密集型 # """ # from threading import Thread # f ...

  10. 100-days: sixteen

    Title: The world's most expensive cities 生活成本最高的城市 For the first time in its 30-year history, the Wo ...