前言

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. 学习node.js 第1篇 介绍nodejs

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  2. Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.2/gradle-3

    参考 https://blog.csdn.net/verkery6/article/details/80797705

  3. Centos7安装部署Zabbix3.4

    1.关闭selinux和firewall 1.1检测selinux是否关闭 [root@localhost ~]# getenforce  Disabled                       ...

  4. PTA 1067 Sort with Swap(0, i) (25 分)(思维)

    传送门:点我 Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy to sort them in increasin ...

  5. java各历史版本官网下载

    java各历史版本官网下载: http://www.oracle.com/technetwork/java/javase/archive-139210.html

  6. 298. Binary Tree Longest Consecutive Sequence最长连续序列

    [抄题]: Given a binary tree, find the length of the longest consecutive sequence path. The path refers ...

  7. canvas(二) lineCap demo

    var dom = document.getElementById('clock'), ctx = dom.getContext('2d'); ctx.beginPath(); ctx.moveTo( ...

  8. Vim中YouCompleteMe插件安装

    背景 YouCompleteMe需要使用GCC进行编译,然而Centos 6.7默认的GCC版本太低,所以需要使用devtools-2,用来安装多个版本GCC手动编译安装GCC的坑简直不要太多(类似于 ...

  9. 正则冷知识;分组捕获、replace()的用法...

    1.var reg=/./; var reg=/\./的区别?? 前者代表任意一个字符,后者代表这个字符串中得有一个.. 2.?的使用?? 如果单独的一个字符串后面带? , var reg=/\d?/ ...

  10. centos free详解

    CentOS 6及以前 $ free total used free shared buffers cached Mem: 4040360 4012200 28160 0 176628 3571348 ...