类 class
对象 oo(实例)
对于一个类,一般有三种常见的成员:属性 field (成员变量),
方法 method,构造器 constructor。这三种成员都可以定义零个或多个。
属性:用于定义静态的特征(年龄,工资),作用范围是整个类体。
方法:类的行为特征和功能实现(学生的听课动作,交作业动作)是动态的。
//一个java文件中可以定义多个类
public class study {
//属性
int id;
String name;
int age;
//方法
void studest(){
System.out.println("学生正在学习");
}
//构造方法
study(){
//无参的构造方法
}
public static void main(String[] args) {
study s1=new study();//在这里调用的是构造方法
System.out.println(s1.id);
System.out.println(s1.name);
System.out.println(s1.age);
s1.age=18;
s1.name="星空辰缘";
System.out.println(s1.name);
System.out.println(s1.age);
System.out.println("----------------");
s1.studest();
study s2=new study();
s2.name="星空辰梦";
s2.age=20;
System.out.println(s2.name);
System.out.println(s2.age);
}
}
s1在缓冲区存储的是study的地址
假设study()的地址为0x11,则s1.id意味着 在地址为0x11的空间中,名为id的变量
当重新定义一个类时,属性是重新调用的,但是方法还是和s1共用一个
数据类型 | 默认值 |
---|---|
整形 | 0 |
浮点型 | 0.0 |
字符型 | ‘\u000’ |
布尔型 | false |
main方法形式上属于类,但实际上不属于
构造器也叫构造方法,用于对象的初始化
1.构造器通过new调用
2.构造器有返回值,但是不能定义返回值的类型,不能在构造器中使用return返回某个值
3.如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数
4.构造器的名字必须和类名相同
```java
import java.awt.*;
class Point {
double x;
double y;
public Point(double _x, double _y) {
x = _x;
y = _y;
}
public double js(Point d){
return Math.sqrt((x-d.x)*(x-d.x)+(y-d.y)*(y-d.y));
}
}
public class car{
public static void main(String[] aegs) {
Point p = new Point(3.0, 4.0);
Point o = new Point(0.0, 0.0);
System.out.println(p.js(o));
}
}