类具有封装性,继承性,多态性
封装性体现了细节的隐藏和权限的控制,继承性体现了类的层次结构,多态性体现了方法名相同而实现却不同
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变量相当于全局变量
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显然是不允许的
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
成员变量不仅可以是基本数据类型,还可以是对象,如下例
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修饰的方法不能被子类覆盖