类(class)
面向对象是一种设计者思维。设计时,先从问题中找名词,然后确立这些名词哪些可以作为类,
再根据问题需求确定类的属性和方法,确立类之间的关系。
~类是一张图纸,系统根据类来创造对象(object / instance),
~类是对象的模板,对象是类的实例
~类中定义了这一类对象所应有的共同属性和方法
类的成员
类有三种成员:属性field、方法method、构造器constructor。
属性
属性用于定义该类或该类对象包含的数据或静态特征。属性的作用范围为整个类体。
在定义成员变量时可以对其进行初始化,如果不进行初始化,Java使用默认值初始化。
| 成员变量默认值 | |
| 数据类型 | 默认值 |
| 整型 | 0 |
| 浮点型 | 0.0 |
| 字符型 | '\u0000' |
| 布尔型 | false |
| 所有引用类型 | null |
方法
方法用于定义该类或者该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。
面向对象中,整个程序的基本单位是类。
【格式】
[修饰符] 方法返回值类型 方法名(形参列表){
// 语句
}
构造方法(构造器 constructor)
【格式】
[修饰符] 类名(形参列表){
// n 条语句
}
1.构造器通过new关键字调用!
2.构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类)
不能在构造器里使用return返回某个值。
3.如果没有构造器,编译器会自动添加一个无参的构造方法。如果已定义就不会再添加
4.构造器的方法名必须和类名保持一致
构造方法的重载

类的实例
/**
* 建一个二维坐标类
*/
public class Point {
double x, y; // 属性
Point(double _x, double _y){ // 构造器
x = _x;
y = _y;
}
Point(){}
// 下面和上面两个构造器是重载
public double Distance(Point p){ // 方法 求到另一个点的距离
return Math.sqrt((x - p.x) *(x - p.x) + (y - p.y) * (y -p.y));
}
public static void main(String[] args){
// Point p = new Point(); // 无参会报错
Point p1 = new Point(3.0,4.0); // 使用构造器
Point p2 = new Point(0.0,0.0);
Point p3 = new Point();
System.out.println(p1.Distance(p2)); // 调用方法.0
System.out.println(p3.Distance(p2));
}
}
/*
*一个学生类
**/
public class Stu {
int id; // 学号
int age; // 年龄
String name; // 姓名
public void study(){
System.out.println("工作日要上课!");
}
public static void main(String[] args){
Stu s1 = new Stu();
System.out.println(s1.id); // 默认为0
System.out.println(s1.name); // 默认为空
s1.name = "david"; // 赋值的一种
System.out.println(s1.name);
s1.study();
}
}
1·
浙公网安备 33010602011771号