疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java 类的声明


 

       类具有封装性,继承性,多态性

  封装性体现了细节的隐藏和权限的控制,继承性体现了类的层次结构,多态性体现了方法名相同而实现却不同

  java中类的声明形式如下

  [java]

  [修饰符]class 类名[extends 父类] [implements 接口名]

  {

  属性(成员变量)->基本数据类型,对象

  操作(成员方法)->函数

  }

  类声明中的修饰符有public,abstract,final

  注意:应用程序类是public的且一个java文件只能有一个public 类

  abstract 类没有实例

  final类不能被继承

  类的访问即指声明该类的对象或继承该类,显然abstract和final不能同时修饰一个类,否则没有意义,编译时会提示either abstract or final, not both

  成员变量的声明形式如下

  [修饰符]变量类型 变量名[=变量初值]

  修饰符有 public,protected,private, private protected,static,final

  static变量相当于全局变量

  [java]

  class Account

  {

  static int num=0;

  }

  public class cam2

  {

  public static void main(String args[])

  {

  Account a=new Account();

  a.num++;

  System.out.println(a.num);

  Account b=new Account();

  b.num++;

  System.out.println(b.num);

  System.out.println(Account.num);

  //Account.num相当于全局变量

  }

  }

  输出为

  1

  2

  2

  这里可将Account.num视为全局变量final修饰的变量相当于常量,不能改变 如将整形的最大数加1显然是不允许的

  [java]

  public class cam2

  {

  public static void main(String args[])

  {

  Integer.MAX_VALUE++;

  System.out.println(Integer.MAX_VALUE);

  }

  }

  编译时提示The final field Integer.MAX_VALUE cannot be assigned 成员变量不仅可以是基本数据类型,还可以是对象,如下例

  [java]

  class Table

  {

  int record=0;

  void addrecord()

  {

  record++;

  }

  }

  class Database

  {

  Table t1;

  Table t2;

  Table t3;

  void InitDatabase()

  {

  t1=new Table();

  t2=new Table();

  t3=new Table();

  }

  }

  public class cam5

  {

  public static void main(String args[])

  {

  Database db=new Database();

  db.InitDatabase();

  db.t1.addrecord();

  System.out.println(db.t1.record);

  }

  }

  输出为1

  成员方法声明的修饰符有public,protected,private,static,abstract,final

  static 方法只能处理static修饰的成员变量

  abstract 方法只能出现在abstract类中且没有方法体

  final修饰的方法不能被子类覆盖