[align=center][size=x-large]类与对象的关系分析[/size][/align]
[size=large]1.简单描述概念[/size]
类:类是一个抽象的且相对的数据类型。
对象:对象是一个具体且绝对的数据类型。
[size=large]2.举例说明概念[/size]
人——是抽象的,因为人包含了很多的特征,也可以说是包含不同的人,这里的人可以是“张三”、可以是“李四”……可见这个不具体且不绝对的一个事物,人在这里只是一个统称。
人&中学生——当这两个事物在一起的,我们就可以很明显的看出,中学生是人,他属于人这个类的范畴之列,所以相对人这个类型来说,中学生算是一个绝对的类型。即特指学生这个对象。
如果还不清晰,再具体说一下,例如:“中央发布一项规定,禁止中学生暑期补课”。这条规定是针对中学生这个对象发布的,不是大学生,小学生或成长人,因此中学生在这里是一个绝对的事物,无二义性。
中学生&小明——其实,我们可以发现中学生也可以作为一个类,“小明”这个名字的人可以看作是一名中学生,那么在这里,中学生成为了抽象的,“小明”这个人成为了具体的。从而可以看出,类是相对的类型。
[size=large]3.类与对象的特点[/size]
(1)安全性强:类在计算机语言中,起到非常重要的作用,它具有很好的封装性,可避免其它成员的非法访问和修改,但又可以灵活的使用类中的可用的资源。稍后我们会通过实例来探讨这一特点。
(2)利用性高:Java是一个纯面向对象的语言,类就成一个模型器,用于制造统一的模具(即对象),然后把这些各种各样的对象紧密的拼接在一起,来完成整个软件项目。可见类的可利用性就大大的增高。对象成为了建房的砖块,把大量的砖块拼接在一起可以建成一栋房子。软件工程也就这样一个原理。所以有一段时间我把自己的QQ昵称改成了“软件建筑师”,我觉得很切合软件工程这一名词。
(3)扩充性好:通过类来定义的对象,有时候我们可以把对象看作是对数据类型的一种扩充;系统基本数据类型,只能表示一个事物单一的属性,然而类通过封装,把多个基本数据类型(事物的多种属性)绑定在一起,这样不仅可以具体的表示一个具体的对象,同时也是对数据类型的一种扩充,存储大小的扩充。
[size=large]3.Java实例分析[/size]
运行结果:
学号:000001 姓名:张三 年龄:18 分数:95.542
学号:000002 姓名:李四 年龄:19 分数:94.543
学号:000003 姓名:王五 年龄:17 分数:97.552
[size=large]1.简单描述概念[/size]
类:类是一个抽象的且相对的数据类型。
对象:对象是一个具体且绝对的数据类型。
[size=large]2.举例说明概念[/size]
人——是抽象的,因为人包含了很多的特征,也可以说是包含不同的人,这里的人可以是“张三”、可以是“李四”……可见这个不具体且不绝对的一个事物,人在这里只是一个统称。
人&中学生——当这两个事物在一起的,我们就可以很明显的看出,中学生是人,他属于人这个类的范畴之列,所以相对人这个类型来说,中学生算是一个绝对的类型。即特指学生这个对象。
如果还不清晰,再具体说一下,例如:“中央发布一项规定,禁止中学生暑期补课”。这条规定是针对中学生这个对象发布的,不是大学生,小学生或成长人,因此中学生在这里是一个绝对的事物,无二义性。
中学生&小明——其实,我们可以发现中学生也可以作为一个类,“小明”这个名字的人可以看作是一名中学生,那么在这里,中学生成为了抽象的,“小明”这个人成为了具体的。从而可以看出,类是相对的类型。
[size=large]3.类与对象的特点[/size]
(1)安全性强:类在计算机语言中,起到非常重要的作用,它具有很好的封装性,可避免其它成员的非法访问和修改,但又可以灵活的使用类中的可用的资源。稍后我们会通过实例来探讨这一特点。
(2)利用性高:Java是一个纯面向对象的语言,类就成一个模型器,用于制造统一的模具(即对象),然后把这些各种各样的对象紧密的拼接在一起,来完成整个软件项目。可见类的可利用性就大大的增高。对象成为了建房的砖块,把大量的砖块拼接在一起可以建成一栋房子。软件工程也就这样一个原理。所以有一段时间我把自己的QQ昵称改成了“软件建筑师”,我觉得很切合软件工程这一名词。
(3)扩充性好:通过类来定义的对象,有时候我们可以把对象看作是对数据类型的一种扩充;系统基本数据类型,只能表示一个事物单一的属性,然而类通过封装,把多个基本数据类型(事物的多种属性)绑定在一起,这样不仅可以具体的表示一个具体的对象,同时也是对数据类型的一种扩充,存储大小的扩充。
[size=large]3.Java实例分析[/size]
package TextClass;
/**
* 学生类
* @author Sean 2012 - 8
*/
public class Student {
String number; //学号
String name ; //姓名
int age; //年龄
double score; //分数
/**
* 构造函数
* @param number
* @param name
* @param age
* @param d
*/
public Student(String number, String name, int age, double d) {
this.number = number;
this.name = name;
this.age = age;
this.score = d;
}
/**
* 输出学生信息
*/
public void print(){
System.out.println("学号:"+number+" 姓名:"+name+" 年龄:"+age+" 分数:"+score);
}
}
package TextClass;
/**
* 主程序类
* @author Sean 2012 - 8
*/
public class Master {
/**
* 主程序入口
* @param args
*/
public static void main(String[] args) {
/**
* 创建三个学生信息
*/
Student student1 = new Student("000001", "张三", 18, 95.542);
Student student2 = new Student("000002", "李四", 19, 94.543);
Student student3 = new Student("000003", "王五", 17, 97.552);
/**
* 显示学生信息
*/
student1.print();
student2.print();
student3.print();
}
}
运行结果:
学号:000001 姓名:张三 年龄:18 分数:95.542
学号:000002 姓名:李四 年龄:19 分数:94.543
学号:000003 姓名:王五 年龄:17 分数:97.552