09类1

7.1类

类是创建对象的模板

7.1.1创建类

public

private

default

protected

[修饰词] class 类的名称

{

       类的成员变量;

       类的成员方法;

}

Public class ClassDemo {

    //类变量

    Static double = 1.0;

    //类的成员变量

    int in;

    String st;

    //类的成员方法

    void Way(){

//局部变量

Char c = ’a’;

       System.out.println("a way.");

    }

}

7.1.2成员变量

成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

7.1.3局部变量

在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

7.1.4类变量

类变量也声明在类中,方法体之外,但必须声明为static类型。

public class Variable{

    static int allClicks=0;    // 类变量

 

    String str="hello world";  // 实例变量

 

    public void method(){

 

        int i =0;  // 局部变量

 

    }

}

7.1.5成员方法

public class Dog{

 

  String breed;

  int age;

  String color;

 

  void barking(){

  }

 

  void hungry(){

  }

 

  void sleeping(){

  }

}

方法

修饰符 返回值类型 方法名(参数类型 参数名){

    ...

    方法体

    ...

    return 返回值;

}

/** 返回两个整型变量数据的较大值 */

public static int max(int num1, int num2) {

   int result;

   if (num1 > num2)

      result = num1;

   else

      result = num2;

 

   return result;

}

方法调用

Java 支持两种调用方法的方式,根据方法是否返回值来选择。

当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。

当方法返回一个值的时候,方法调用通常被当做一个值。例如:

int larger = max(30, 40);

如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:

System.out.println("欢迎访问菜鸟教程!");

public class TestMax {

   /** 主方法 */

   public static void main(String[] args) {

      int i = 5;

      int j = 2;

      int k = max(i, j);

      System.out.println( i + " 和 " + j + " 比较,最大值是:" + k);

   }

 

   /** 返回两个整数变量较大的值 */

   public static int max(int num1, int num2) {

      int result;

      if (num1 > num2)

         result = num1;

      else

         result = num2;

 

      return result;

   }

}

方法的重载

创建另一个有相同名字但参数不同的方法

7.1.5构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

 

在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

public class GouZao {

   

    String name;

    char sex;

    double weight;

    double height;

 

    public GouZao() {

        System.out.println("一个狗仔方法");

    }

   

    public GouZao(String name,char sex) {

        this.name = name;

        this.sex = sex;

        weight = 0.0;

        height = 0.0;

    }

 

    public GouZao(String name, char sex, double weight, double height) {

        super();

        this.name = name;

        this.sex = sex;

        this.weight = weight;

        this.height = height;

    }

}

public class GouZaoTest {

    public static void main(String[] args) {

        GouZao gz1 = new GouZao();

        //

        GouZao gz2 = new GouZao();

        gz2.name = "daddd";

        gz2.sex = 'a';

        //

        GouZao gz3 = new GouZao();

        gz3.name = "dadadadada";

        gz3.sex = 'v';

        gz3.weight = 20.0;

        gz3.height =16.0;

        //

        System.out.print(gz1.name+" ");

        System.out.print(gz1.sex+" ");

        System.out.print(gz1.weight+" ");

        System.out.print(gz1.height+" ");

        System.out.print("\n");

        //

        System.out.print(gz2.name+" ");

        System.out.print(gz2.sex+" ");

        System.out.print(gz2.weight+" ");

        System.out.print(gz2.height+" ");

        System.out.print("\n");

        //

        System.out.print(gz3.name+" ");

        System.out.print(gz3.sex+" ");

        System.out.print(gz3.weight+" ");

        System.out.print(gz3.height+" ");

    }

}

 

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

猜你喜欢

转载自www.cnblogs.com/Aha-Best/p/10884509.html
0条评论
添加一条新回复