标题: 关于局部变量类型是类名的问题 [打印本页] 作者: 张昊镭 时间: 2012-3-12 14:39 标题: 关于局部变量类型是类名的问题 在第五天的this关键字应用里面有段代码
class Person
{
private int age;
Person(int age)
{
this.age=age;
}
public boolean compare(Person p)
{
return this.age==p.age;
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p1=new Person(20);
Person p2=new Person(25);
System.out.println(p1.compare(p2));
}
}
compare里面的p参数类型是Person,请描述下这个Person类型是一个什么样的类型,我只想到这个类型里面有一个int类的age.还有个问题,成员变量的类型可以是类名吗,看了百度还是不太理解自定义的类型.作者: 蒙武辉 时间: 2012-3-12 14:56
描述下这个Person类型是一个什么样的类型:Person是类类型
成员变量的类型可以是类名吗:可以是的。
要知道除了8种基本数据类型,还有类类型。作者: 赵孟恩 时间: 2012-3-12 15:00
Person类是你自定义的,你说了算!里面的age是Person类的属性,属性age是int类型, 你说的成员变量类型可以是Person类型 new Person();也就是创建Person对象作者: 杨毅 时间: 2012-3-12 15:00
描述的话就是 有一个Person类,这个类有一个int型属性age, 对外提供一个比较年龄的方法,只有一个构造方法,创建对象时需要传递int型参数来初始化
成员变量类型可以是该类类型,典型的就是单例嘛作者: adison 时间: 2012-3-12 15:02
Person是一个类类型,因为你自己定义了一个Person类,数据类型包括基本数据类型和引用数据类型,类属于引用数据类型,成员变量的类型可以是类名,譬如你定义一个类,
class Person {
int age;
String name;
}
String 就是一个类名,你可以在API文档找到它
甚至你可以这样
class Person {
int age;
String name;
Person manr;
Person woman;
} 作者: 罗闯 时间: 2012-3-12 15:11
先解释一下你这个程序的含义:p1.compare(p2);这里的compare方法返回值是boolean类型的,return this.age==p.age;比较的是private 类型的age,实际上也就是哪个私有的成员变量,和传入的参数(形式参数)两个引用的age值是否相等,这里要注意实际上this就是指的private int age