类和对象之间微妙的关系,其实是来自于实际生活中(类和对象的概念当然是java鼻祖根据经验搞出来的,而经验不久是从生活中来吗?),所以,你自己能在生活中找到活生生的例子。
类是抽象的,规定了其对象的所有属性和方法,就像你说“树”,你心中有树的概念了吧,你知道树是什么样子的(有枝干,有叶子,甚至有花),但是你可能会这样想:树也分好多种啊,木棉、梧桐或者说香蕉树……。这个没错,你想得又远一点了,这就涉及类的继承了。这其中“树”就是我们所说的“父类”,木棉、梧桐或香蕉树都是“树”的“子类”,子类继承了父类的所有属性和方法,就像你爸妈的基因遗传给你一样,只是你的基因的表达不同(这些生物常识,你懂的)。
关于对象,请记住“万事万物皆对象”这句名言吧!对象是从类中来的,对象具有类的属性,并且对象是“极其具体的
”,什么是“极其具体的”?这个问题问得好,我们还用树的例子,假如我对你说“树”,你知道树的具体位置,具体属性和方法吗?不知道是吧。那假如我说“你家后院水井旁的那棵树”(也许你家没有水井,但别钻牛角尖啦),你知道“那棵树”了吧,你甚至能对我说出它的名字,有多高,有多茂盛,现在有没有结出你最爱吃的果子……对象就是这样的一个东西,对象能让你想到很具体的东西,而不是一个空洞的概念。
现在应该对这两个概念有些眉头了吧,不需要你变成哲学家去看透事物的本质,以上例子用常识就能理解。
下面是类和对象的创建,很简单:
类的创建:public 类名 { 属性,方法 }
对象的创建: 类名 对象名 = new 类名(); (此处根据构造器创建)
简单例子演示:
//定义一个学生类
public class Student {
//定义一个姓名属性,默认值是null
private String name;
//定义一个学分属性,默认值是0.0
private double score;
//定义设置姓名属性值的方法
public void setName(String strName){
//将strName的值赋给name
name = strName;
}
//定义获取姓名属性值的方法
public String getName(){
return name;
}
//定义一个学习的方法
public void study(){
//学习的时候学分加1
score++;
//输出结果
System.out.println(name+"学习中,学分是"+score);
}
}