文档介绍:Java语言程序设计
第三章类与对象
final class Trangle {
double sideA,sideB,sideC;
void setSide(double a,double b,double c)
{ sideA=a; sideB=b; sideC=c; }
double getSideA( )
{ return sideA; }
double getSideB( )
{ return sideB; }
double getSideC( )
{ return sideC; }
boolean isOrNotTrangle( )
{ if ( sideA+sideB>sideC && sideA+sideC>sideB
&& sideB+sideC>sideA )
return true;
else return false;
}
}
类修
饰符
类声明
成员变量
成员函数
类声明
类名须遵守的原则
符合标识符规定
若使用拉丁字母,首字母大写
若由几个单词复合而成, 每个单词的首字母大写
类修饰符
public 该类可以被任何其它类使用
abstract 该类是抽象类(包含抽象方法)
abstract不能和final叠用修饰类
不能有private成员变量和方法
final 该类不能被继承
缺省(友好类) 该类仅可被同一包中的类使用
static 内部类才允许声明为静态类
静态内部类
可直接作为一个普通类来使用,而不需实例一个外部类
class OuterCls {
public static class InnerCls {
InnerCls( ) {
("this is inner class!");
}
}
}
public class InnerStatic {
public static void main(String[ ] args) {
ic=new ( );
}
}
类声明(续)
说明继承的父类
class 类名 extends 父类名
所有类都是Object的直接或间接子类
说明实现的接口
class 类名 implements interface1,interface2,…;
多个类可共享相同的接口
一个类可实现多个接口
类的成员变量
实例变量与类变量
实例变量
在对象创建时分配内存空间,对象的空间回收时释放内存空间
对于每个对象都有不同的存储空间
只能通过对象名访问
类变量 static
类被加载到内存时为类变量分配存储空间,程序退出运行释放空间
该类的所有对象共享类变量
可通过类名或对象名访问
实例变量与类变量(续)
静态初始化器
static
{
初始化语句;
}
与构造函数的区别
构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身的静态域进行初始化。
构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。
静态初始化器不是方法,没有方法名、返回值和参数列表且仅执行一次。
不能出现非静态域或调用非静态方法
class Point {   
static int numberOfPoints ;
int x; int y;     
 int serialNumber;    
static
{ numberOfPoints = 0;
}
public Point(int newX, int newY)
{ x = newX; y = newY;
numberOfPoints++;
serialNumber = numberOfPoints;
}
void printStates() {
("x="+x+", y="+y
+ ", 序号:" + serialNumber);
}
}
import .*;   
class PointDemo {
public static void main
(String[ ] args) {
Point p1 = new Point(23, 94);
();
("现在一共有" +
+
"个点");
Point p2 = new Point(34,67);
();
(“现在一