一、类的定义
修饰符 class extends 父类名 implements 接口名
{
类的成员变量说明;
类的方法定义;[Java的方法相当于C++中的函数]
}
例如:
public class A
{
...
}
public class B extends A implements Interface1,Interface2
{
...
}
//类B继承了类A 并且要实现接口 Interface1,Interface2
类的修饰符:
1)public 说明该类为公共类,他可以被其他类所使用。Java规定,程序中主类必须是公共类
2)默认说明 规定该类只能被同一个包中的类所使用,而不能被其他包中的类所访问。
3)abstract 抽象类,这是一种没有具体对象的概念类,通常抽象类是它所有子类的公共属性的集合。
4)final 说明该类不可能有子类,故称为最终类。这种类用来完成某种标准功能,final和abstract 不能用来同时修饰一个类。
二、变量的定义
修饰符 变量类型 变量名 = 初值;
例如:public int ID=123;
修饰符 类名 对象名 = new 类名(实参表);
例如: public Student x =new Student(id,name,age);
访问控制修饰符:
1)公有访问控制符 public 具有该修饰的变量为公共变量,如果该变量属于一个公共类,则它可以被所有类访问。
2)默认访问控制符 可以被同一个包的其他类所访问。
3)私有访问控制符 private 仅可被类自身访问,任何其他类都不可访问,包括该类的子类。
4)保护访问控制符 protected 可被该类自身、同包的其他类和其他包中该类的子类所访问
5)私有保护访问控制符 private protected 可被该类自身和该类的所有子类所访问,不在同一包中的子类也可访问。
非访问控制修饰符:
1)静态变量 static 静态变量的特点是属于某个类的,而不是属于某个对象的。静态变量被系统存放在内存的一个公共存储单元中,任何对象都可以访问它,也可以修改它,一旦被修改后,经保持被修改后的内容直到下次被修改为止。静态变量的引用可以使用类名,也可以使用对象名。
2)最终变量 final 最终变量就是Java语言中的符号常量,它的值在执行过程中不会改变。
修饰符 final 类型 变量名=初值;
最终常量通常被说明为static的。
修饰符 static 类型 常量名=初值;
3)易失变量 volatile 该变量可能同时被多个线程所控制和修改。这种变量在运行过程中可能被其他未知因素改变。
三、方法的定义
修饰符 返回值类型 方法名 参数表 throws 异常类名列表
{
......
}
访问控制修饰符:
1)公有访问控制符 public 使用该修饰符的方法可作为该类对外的接口,程序可以通过它与类体内的成员进行信息交换,比如 public String getName();
2)默认访问控制符 可以被同一个包的其他类所访问。
3)私有访问控制符 private 仅可被类自身访问,任何其他类都不可访问,包括该类的子类。
4)保护访问控制符 protected 可被该类自身、同包的其他类和其他包中该类的子类所访问
5)私有保护访问控制符 private protected 可被该类自身和该类的所有子类所访问,不在同一包中的子类也可访问。
非访问控制修饰符:
1)抽象方法 abstract 抽象方法只是有方法说明,而没有具体实现的一种方法。该方法的具体实现会出现在该类的子类中。使用抽象方法的目的是使所有的该类的子类都有一个同名的方法作为统一的接口。
2)静态方法 static 静态方法是属于整个类的方法,调用该方法可以使用类名或对象名,该方法不被任何对象所专有,通常静态方法只能处理静态变量。
3)最终方法 final 该方法不能被当前类的子类所重新定义,是最终的方法。
4)本地方法 native 该方法通常用来说明用其他语言(如C++、汇编语言)书写方法体,并实现方法功能的特殊方法,这种方法只在类体内给出说明,而具体的实现方法体在类外。
5)同步方法 synchronized 该方法主要用于多线程共存的程序中的协调和同步。
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是Java继承区别于C++继承的一个特性。
四、接口和包
接口的定义:
public interface 接口名 extends 父接口名表
{
public static final 类型 常量名 = 常量值;
public abstract native 类型 方法名 参数表 throw 异常列表;
}
创建包:
package 包名1.包名2.包名3;
例如:package java.awt.image;
说明包中的文件是存放在目录 java/awt/image下的。