shuai__feng 2009-12-31 09:29 采纳率: 0%
浏览 160
已采纳

让前辈们指点指点,看看理解的是否正确???关于Class类。

不知道怎么讲,有点乱,希望前辈们耐心看完,并加以修正。

java中的类就是用户自定义的一种数据类型,及引用类型。我定义如下一个person类:
public class person{
public String name;
public String address;
public void test(){
System.out.println("test 方法");
}
public static void main(String args[]){
person p = new person();//这里p是一个实例对象,person是一个类(也就是用户自定义的数据类型)。这时p的类型就是person。(是不是这样,能不能这样讲????)
}
}

java中还有一个特殊的Class类,它同样继承与Object类,但它是所有java类的抽象。Class类的实例是由jvm生成的。它自己没有公共的构造方法。

参照上面的类,person.class类是Class类的一个实例,person.class这个对象它是person这个类在内存中的字节码,内容是person这个类的信息。那么person.class这个对象是person类数据类型这种说法对吗????
还有int到底是一种简单的数据类型呢还是一个类????

  • 写回答

3条回答 默认 最新

  • iteye_20818 2009-12-31 11:45
    关注

    我觉得国内的书已经把"对象"这个词用泛滥了,而且这个词又会对初学者造成很大的迷惑。我用英文对照术语给你重新整理一下思路吧。

    中文翻译--英文 术语对照
    类--class
    实例--instance

    1.Person是一个类(class),p是一个实例(instance),p的类型是Person。
    [code="java"]
    public class Person{
    ...
    }

    Person p = new Person();
    [/code]
    注:Person是一个class,所有的class在定义的时候,第一个字母约定是要大写的哦。

    2.关于Class这个类(class),为什么会有这个类呢?主要是因为在程序运行的时候我们需要知道一个实例的类型。如果你传一个实例p到方法中,但是我不知道这个p是什么类型啊,这时候就可以使用p.getClass()来获取p的类型啦。他是等同于Person.class
    [code="java"]
    public void test(Object p){
    Class clazz=p.getClass();
    //等同于Class clazz=Person.class;这里的clazz当然也是个instance啦。
    }
    [/code]
    所以Class和Person都是类(class)哦,都是继承java.lang.Object的。

    3.关于int类型。我们称它为primitive type,中文通常将其翻译为原始类型或者是基本类型。很明显他不是一个类(class)啦(你可以试试看,它能调出方法么?)。但是有一个类java.lang.Integer可以用来代替它,Integer类可是有方法的。
    [code="java"]
    int i1=10;//i1是个实例,是基本类型
    Integer i2=new Integer(10);//i2是个实例,是类(class) 类型,这个市JDK4或以下的写法
    Integer i3=Integer.valueOf(10);//这个是JDK5或以上的写法
    [/code]

    我好像都没有在上文用到"对象"这个词吧,因为很多时候这个对象意义模糊不清,有时候指的是instance,有时候又指class,真是让人迷惑.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 adb连接不到手机是怎么回事?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目