Java学习总结——关于类、关键字的专题研究

本文详细探讨了Java中的类与关键字,包括Object类的特殊性,如toString()、equals()和hashcode()的使用;内部类的定义与作用,如静态内部类和非静态内部类的特性;匿名类和匿名对象的概念与应用场景;this关键字的含义及其在构造方法中的应用;static关键字在属性、方法、主方法和静态代码块中的使用;final关键字的作用,如防止继承、方法覆写和变量修改。通过这些知识点的讲解,有助于深化对Java面向对象编程的理解。
摘要由CSDN通过智能技术生成

拾肆——关于类与关键字的专题研究

一、众类鼻祖——Object 类

Object 类是 Java 中一个比较特殊的类,它是类层次结构的根,位于继承树的顶层,即 Java 中所有的类从根本上都继承自 Object 类。它是 Java 中唯一没有父类的类。如果一个类没有使用 extends 关键字明确标识继承另外一个类,那么这个类就默认继承 Object 类,因此,Object 类是 Java 类层中的最高层类,是所有类的超类。换句话说,Java 中任何一个类都是它的子类。由于所有的类都是由 Object 类衍生出来的,所以 Object 类中的方法适用于所有类,因此下面的两种类的定义形式,从本质上讲是完全一样的。

        public class Person    //当没有指定父类时,会默认Object类为其父类
        {
            ……
        }

等价于:

        public class Person extends Object
        {
            ……
        }

Object 类中常用方法及操作功能如下表所示:

返回类型 方法名称 输入参数 抛出异常 操作功能
构造方法 Object     创建 Object 对象
Object clone   CloneNotSupportedException 创建并返回此对象的一个副本
boolean equals Object   提示其他某个对象是否与此对象 “ 相等 ”
void finalize   Throwable 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
Class getClass     返回此 Object 的运行时类
int hashCode     返回该对象的哈希码值
void notify   IllegalMonitorStateException 唤醒在此对象监视器上等待的单个线程
void notifyAll   IllegalMonitorStateException 唤醒在此对象监视器上等待的所有线程
void wait   InterruptedException 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待
String toString     返回该对象的字符串表示
void wait long InterruptedException 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待
void wait long,int InterruptedException 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待

1.取得对象信息:toString()

Object 类的 toString() 方法是打印对象时被调用,将对象信息变为字符串返回。默认的 toString() 方法有一个特点:为了适用于所有的子类,toString() 在默认情况下输出对象地址,当然,每一个子类也可以自己进行修改。

举例:

//Object类的使用
class Person extends Object
{
	String name = "张三";
	int age = 25;
}

class ObjectDemo1
{
	public static void main(String[] args)
	{
		Person p = new Person();
		System.out.println(p);//直接输出对象
		System.out.println(p.toString());
	}
}

对象输出时,会默认调用 Object 类的 toString() 方法,将对象信息变为字符串返回。下面举例覆写 Object 类中的 toString() 方法。

//覆写Object类的方法
class Person extends Object
{
	String name = "张三";
	int age = 25;
	//覆写 Object类中的toString()方法
	public String toString()
	{
		return "name:" + this.name + "age:" + this.age;
	}
}

class OverrideObject
{
	public static void main(String[] args)
	{
		Person p = new Person();
		System.out.println(p);//直接输出对象
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基础知识模块提供有关Java工具软件及Java基础语法知识的教学资源。这部分系统归纳总结了本课程基本理论知识及Eclipse软件操作的基本方法、技巧,可供学生自学,可作为学生入门学习教程或基础知识资料库。基础知识模块的每一个知识点只包含一个教学资源文档。教学资源文档由文本、图片和附件组成。 进阶知识模块提供Java高级编程知识的教学资源。此模块中的每一个进阶知识都是一个专题,包含多个教学资源文档。 实例教程模块提供了从简单到复杂的Java实例讲解文档和代码,以知识点为线,采取循序渐进的方式,引导学生对相关知识的掌握。每一个实例教程包含实例题目、实例内容、实例讲解、运行结果和代码附件。 拓展知识模块精选了网络上的相关知识,作为学生额外学习的内容。既可拓宽学生知识面,又可以加速加深学生对本课程的理解,提高他们对专业知识的实际应用能力。 学生作品展示模块,包括学生课程设计、项目实训的优秀作品及大赛作品等。作品展示要求有标题、作者名、内容介绍、效果展示、附件(相关文档、源代码或发布文件)等内容。 相关资源包括相关软件资源、优秀网站和电予书下载等。 在线测试模块,可以有效地检验学生对Java知识的掌握程度。此模块不做强制要求,可每组自己决定怎么做。 系统包含三用户角色:系统管理员、教师和学生。学生角色拥有阅读、下载所有的资源的权限;教师角色拥有上传资源,管理自己上传资源的权限;系统管理员角色拥有创建教师用户,管理所有资源等权限,系统只有一个系统管理员。学生通过网站注册拥有学生角色权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值