Java类及成员
类
类是对一类事物的的描述,是抽象的概念上的定义;类是创建对象的模板;
类的成员属性
类变量
类变量也声明在类中,方法体之外,但必须声明为static类型。
成员变量
成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
局部变量
在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。没有修饰符定义即赋值;
类的构造器
每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
类的成员方法
为类提供相应功能的操作;方法内可以调用本类的属性和其它方法但是不能在方法内再定义方法;返回值类型void表示此方法不需要返回值,有返回值的方法在最后一定有 return 返回内容;
6 //类的创建
7 class Demo{
8 //类变量
9 private static int id;
10 //类的成员变量
11 private String name;
12 private char sex;
13 //类的构造器
14 public Demo() {
15 super();
16 }
17 public Demo(String name, char sex) {
18 super();
19 this.name = name;
20 this.sex = sex;
21 }
22 //类的成员方法
23 public void drink() {
24 //类的局部变量
25 String s ="drink";
26 System.out.println(s);
27 }
28 public static int getId() {
29 return id;
30 }
31 public static void setId(int id) {
32 Demo.id = id;
33 }
34 public String getName() {
35 return name;
36 }
37 public void setName(String name) {
38 this.name = name;
39 }
40 public char getSex() {
41 return sex;
42 }
43 public void setSex(char sex) {
44 this.sex = sex;
45 }
46 @Override
47 public String toString() {
48 return "Demo [name=" + name + ", sex=" + sex + "]";
49 }
50 }
方法的重载
//方法的重载
//1.在同一个类中;2.方法名称相同;3.参数类型不同或参数个不同;
class Overload{
public void method(int a) {
System.out.println(a);
}
public int method(int a,int b) {
return a + b;
}
public double method(double a,double b) {
return a + b;
}
public double method(double a,double b,double c) {
return a + b + c;
}
}
匿名类
import java.util.Date;
public class NoNameClass {
public static void main(String[] args) {
// 匿名类对象
System.out.println(new Date());
}
}
finalize() 方法
Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。
例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。
在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
finalize() 一般格式是:
protected void finalize()
{
// 在这里终结代码
}
public class FinalizationDemo {
public static void main(String[] args) {
Cake c1 = new Cake(1);
Cake c2 = new Cake(2);
Cake c3 = new Cake(3);
c2 = c3 = null;
System.gc(); //调用Java垃圾收集器
}
}
class Cake extends Object {
private int id;
public Cake(int id) {
this.id = id;
System.out.println("Cake Object " + id + "is created");
}
protected void finalize() throws java.lang.Throwable {
super.finalize();
System.out.println("Cake Object " + id + "is disposed");
}
}
Cake Object 1is created
Cake Object 2is created
Cake Object 3is created
Cake Object 3is disposed
Cake Object 2is disposed