java的class和object_Java中Class/Object/T的关系

Object 对象

Object是Java中的基类,大部分的对象都是继承于这个类。

public class Object {

....

public native int hashCode();

public boolean equals(Object obj) {

...

}

public String toString() {

...

}

}

以上是其定义,可以看出来其定义了一些基础方法,比如hashCode等等。

Class类的类

「Class类」是其本身也是一个类,且不可以继承,它指向的是「实例的定义」是「类的类」

注意本文中「Class类」和「Class」意思不同,前者指的是『public final class Class』,后者值得是『类这个概念』

public final class Class implements java.io.Serializable,

java.lang.reflect.GenericDeclaration,

java.lang.reflect.Type,

java.lang.reflect.AnnotatedElement {

......

}

可以看得出其本身实现了一些接口,主要是反射中的。

T 模板

T是代表模板,可以「代表任何Object」,其主要是放在各种单书名号中,一般是类名或者问号。

问号代表不确定

名字代表确定

T则代表任意一个「继承于Object的类」

T控制返回值

当要使用T时需要通过「中括号T」来声明,其相当于finally或者static之类的限定符号

public finally static T method(Class clazz) {

return T;

}

除去方法的限定词

T method(Class clazz);该方法是一个返回值为T,入参为任意「Class类」的方法

返回值根据传入的对象确定

返回的是「Class类」的一个实例化Object。

控制容器内容public static List select(T object);

根据输入参数T可以保证返回的List对象中全部都为T的实例。

T用于强行转换

由于T本身作为一个模板,所以也可以用于强行类型转换

List list = (List) object;

resultList.add((T) BeanMapperUtil.objConvert(tempDO,objectBO.getClass()));

Class/Class类/Object/T的逻辑关系

如上总结

「Class类」是一个「Class」和Object同一级别,且不可以被继承

Object代表对象,是实例,实例就是某个「Class」的new实例化

T则是代表任意一个继承于Object的「Class」

看上去还是很晦涩,所以就拿String进行举例

class SomeObject extends Object {

T method(Class clazz);

}

SomeObject some = new SomeObject();

Class clazz = some.getClass();

SomeObject someT = some.method(clazz);它的「Class」是「someObject」,它的实例some是一个「Object」

「class SomeObject extends Object」可以被一个「Class类」的实例clazz指向

当method被调用,输入了clazz,返回值就是「someObject」,那么T就是「someObject」这段字符

妈蛋 还是很晦涩。。。。。我也不知道该怎么讲了。。。总之,你感觉感觉。。。

关于「Class」这个概念,就是类这个概念如何产生的,可以看另外一个文章面向对象语言的吹逼

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P2787 语文1(chin1)- 理理思维

题目背景 蒟蒻HansBug在语文考场上,挠了无数次的头,可脑子里还是一片空白。 题目描述 考试开始了,可是蒟蒻HansBug脑中还是一片空白。哦不!准确的说是乱七八糟的。现在首要任务就是帮蒟蒻HansBug理理思维。假设HansBug的思维是一长…

使用jstree创建无限分级的树(ajax动态创建子节点)

首先来看一下效果 页面加载之初 节点全部展开后 首先数据库的表结构如下 其中Id为主键,PId为关联到自身的外键 两个字段均为GUID形式 层级关系主要靠这两个字段维护 其次需要有一个类型 public class MenuType{public Guid Id { get; set; }public Guid PId { get; set; }publi…

oracle长连接超时设置

方法一、在sqlnet.ora中设置参数 如需要设置客户端空闲10分钟即被中断,则在sqlnet.ora的末尾添加SQLNET.EXPIRE_TIME10注:sqlnet.ora文件的路径在$ORACLE_HOME/network/admin下。 方法二、Oracle Profile中设置 生产库上执行如下操作: SQL>…

linux syslog 笔记

原文地址 Linux日记系统由系统日志监控程序syslogd和内核日志监控程序klogd组成。从它们的命名可以看到,这两个监控程序都是守护程序(daemon),且都注册成了系统服务。换句话说,我们可以在目录/etc/init.d/下找到它们对…

Jenkins构建Spring+Nodejs项目

构建node.js环境1.安装 node.js 2.项目目录下执行 npm i -production 安装依赖的包install时会在项目目录下生成node_modules目录,使用-production只会下载依赖相关的包,否则会下所有的包(太大了)。因为编译主机不能联网&#xff…

解析Hibernate的结构

在学习Hibernate的时候,首先要了解Hibernate的大体结构,这样才能更好的理解其中的知识,下面就开始分析Hibernate的体系结构 1.HIbernate简要的体系结构如下图所示: 通过上图能够发现HIbernate需要一个hibernate.properties文件&am…

Java反梯形图案_梯形法求定积分(一)设计梯形法求积分的类模板,梯形法

/*设计梯形法求积分的类模板,梯形法求积分的函数被定义为成员函数,可以求任意函数的定积分,用积分类的模板参数T引入被积函数*/#include#include#includeusing namespace std;class Mysin{public:double fun(double x){return (sin(x));}};cl…

排序算法杂谈(三) —— 归并排序的非递归实现

1. 递归 在众多排序算法中,归并排序(Merge Sort)和快速排序(Quick Sort)都是时间复杂度为 O(nlog2n) 的高效排序。 这两种排序有一种共性,就是运用到了递归的思想。 在程序设计中,递归是一个很有…

apache+php32位平台安装

一、 系统配置 1、 禁用IPV6 修改/etc/modprobe.conf文件,加入以下两行: alias net-pf-10 off alias ipv6 off 2、 启用以下服务 其它服务关闭 acpid 提供高级电源管理 cpuspeed 可以提高系统运行效率 apmd 高级电源管理 crond 执行例行性程序 也就是window…

mysql 函数修改无效_MySQL:组函数的使用无效

MySQL:组函数的使用无效我正在使用MySQL。 这是我的模式:供应商( sid:整数 ,sname:string,地址string)部件( pid:整数 ,pname:string,颜色:string…

webpack简单笔记

本文简单记录学习webpack3.0的笔记,已备日后查阅。节省查阅文档时间 安装 可以使用npm安装 //全局安装 npm install -g webpack //安装到项目目录 npm install --save-dev webpack npm init会创建package.json文件。配置该文件可以简化我们之后的一些操作&#xff0…

ASP.NET性能优化小结(ASP.NETC#)(转)

原文转自:http://www.jb51.net/article/25937.htm 一、返回多个数据集   检查你的访问数据库的代码,看是否存在着要返回多次的请求。每次往返降低了你的应用程序的每秒能够响应请求的次数。通过在单个数据库请求中返回多个结果集,可以减少与…

【Canal源码分析】Sink及Store工作过程

一、序列图 二、源码分析 2.1 Sink Sink阶段所做的事情,就是根据一定的规则,对binlog数据进行一定的过滤。我们之前跟踪过parser过程的代码,发现在parser完成后,会把数据放到一个环形队列TransactionBuffer中,也就是这…

传Facebook将推出应用中心挑战谷歌搜索地位

网易科技讯 6月8日消息,据TechCrunch报道,Facebook将在今天或不久后推出App Center(应用中心)产品。应用中心可在手机上或浏览器中使用,外观和功能非常像苹果的应用店App Store,除了不能下载iPhone或iPad应用外。 Facebook的应用中…

java中or和and的优先级_x86处理器汇编语言AND和OR运算符优先级

Irvine的书使用MASM作为参考汇编程序 .作者正在谈论MASM operators 1 - 这些运营商仅为了我们人类的利益而受到支持 .它们让我们对立即数和常量执行算术,但它们使用的表达式必须最终在汇编时解析为一个值 .aConstant EQU 35mov edx, NOT 1 ;Same as mov edx, 0fffff…

博客园修改页面显示样式css

博客园修改页面显示样式css 一、总结 二、 博客园修改页面显示样式css 1、点管理 2、点设置 3、在页面定制css代码中加入你想要改变样式的css代码即可 不会写css的下面有代码示例,直接复制粘贴放到页面定制css代码位置即可 三、代码 1 #cnblogs_post_body h3 {2 …

基准测试 ApacheBench ab学习

2019独角兽企业重金招聘Python工程师标准>>> ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试&#xff0…

java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制

在《浅谈Java虚拟机》这篇文章中,我们提到了JVM从操作系统方面来说,可以将其看做是一个进程,分别有类加载器子系统,执行引擎子系统和垃圾收集子系统。这一篇文章就简单的来谈一下类加载器子系统中的类加载机制。第一:什…

如何把两个查询语句合成一条 语句

我给你写个例子:假设 第一条sql 是 select a.a1,a.a2,a.a3 from A a where ... 第二条sql是 select b.b1,b.b2,b.b3 from B b where ... 第三条sql 是 select c.c1,c.c2 from C c where ...那么合成一句的sql 是select x.x1,x.x2…

fedora 16 面部显示

为什么80%的码农都做不了架构师?>>> 显示日期: gsettings set org.gnome.shell.clock show-date true 显示秒数: gsettings set org.gnome.shell.clock show-seconds true 显示天气: 1.在这里 https://github.com/sim…