面向对象编程中,类对应表的结构(表的field)。
通过上图,可以看到,雇员类和雇员表的结构完全一样,只不过,雇员类增加了数据的类型而已。
1.表结构对应:类结构
2.一行数据对应:一个对象
3.表中所有数据对应:这个类的所有对象
类的定义类:class 对象:Object,instance(实例)。
类可以看成一类对象的模板,对象可以看出该类的一个具体实例。类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。 类的定义方式
这是一个空类,没有任何实际意义。
对于一个类来说,一般有三种常见成员:属性 field、方法 method、构造器 constructor。
属性(成员变量):用于定义该类或该类对象包含的数据或者静态特征。作用范围:整个类体。在定义成员变量时,如果不对其进行初始化,Java使用默认的值对其初始化。
成员变量的默认值:
方法:用于定义该类或该类实例的行为特征和功能实现。//面向过程中,整个程序的基本单位是类。
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表){
//n条语句
}
编写一个简单的学生类:
package com.bjsxttest2; public class Student { //属性 int id; String name; int age; //方法 void study(){ System.out.println("Studying"); } //构造方法(方法名和类名保持一致) Student() { } public static void main(String[] args) { Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); s1.id=1001; s1.name="java"; s1.study(); System.out.println(s1.id); System.out.println(s1.name); } }
输出结果为:
两次的id和name输出结果不同:第一次未初始化所以输出默认值,第二次初始化。
简单学生类的内存分析:
构造器:用于对象的初始化。Java通过new关键字来调用构造器,从而返回该类的实例。
4个要点:
1.构造器通过new关键字调用!!
2.构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
3.如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加。
4.构造器的方法名和类名一定要一致。
例题:定义一个“点”(point)类用来表示二维空间中的点(有两个坐标)。要求如下:
可以生成具有特定坐标的“点”对象。提供可以设置坐标的方法。提供可以计算该“点”距另外一点的方法。
代码如下:
package com.bjsxttest2; class Point{ double a,b; public Point(double x,double y){ a=x; b=y; } public double getDistance(Point p){ return Math.sqrt((a-p.a)*(a-p.a)+(b-p.b)*(b-p.b )); } } public class Student2 { public static void main(String[] args) { Point p=new Point(3,4); Point origin=new Point(0,0); System.out.println(p.getDistance(origin)); } }
该题的内存分析:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)