JAVA中的类

来源:互联网 发布:iphone屏幕检测软件 编辑:程序博客网 时间:2024/06/10 22:11

    JAVA中,类是程序构成的基本要素.在JAVA平台中,可以认为程序都是类组成的.

 

1.类的声明

    1-1.最基本最简单的类的声明形式:

        class 类名{

            //属性、构造函数和方法声明

        }

    [注:]

        1).class关键字是必需的;

        2).类名的命名规则:第一个字母要大写,后面每个单词的首字母也要大写.例如:

        class AutoCar{

            //属性、构造函数和方法声明

        }

 

    1-2.有访问权限的类的声明形式:

        [类修饰符] class 类名{

            //属性、构造函数和方法声明

        }

        可以作类修饰符的关键字如下:

        public:表示此类可以被JAVA所有软件包使用;

        private:

        abstract:

        final:

        strictft:

 

    1-3.表明此类其父类信息的声明形式:

        [类修饰符] class 类名 [extends 父类名称]{

            //属性、构造函数和方法声明

        }

        关键字extends来表明该类是从哪个类派生过来的.

 

    1-4.实现接口的类的声明形式:

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

            //属性、构造函数和方法声明

        }

 

    1-5:注意事项:

        1).同一个JAVA源文件中可以有多个类,但是不能包含两个或两个以上的带有public修饰词的类;

        2).如果上JAVA源文件中某个类前面有public修饰词时,那么含有此类的源文件必须与此类的类名相同.

 

2.类体

    类的主体简称类体,指的是类名后面大括号的内容.

 

    2-2.类体的内容之成员变量:

        类体的内容中的成员变量包括:字段、局部变量、参数等.

        1).字段:

            是指类中的成员变量.如下:

            public class AutoClass{

                private String brand;

                private float exhaust;

                private int speed;

            }

            其中,brand、exhaust和speed都是类AutoCar的"字段".

            字段的声明由三部分组成:

            [修饰符]    数据类型    变量名称;

 

        2).局部变量

            类方法中的变量.JAVA平台的方法理解成C中的函数即可.

 

        3).参数

            类方法中的参数.其意义和C中的函数参数一样.

 

    2-3.类体内容之成员方法

        JAVA平台的类成员方法和C函数意义一样.

 

        1).JAVA平台类体的成员方法声明形式如下:

        [方法修饰符] 返回类型 方法名称(方法的参数列表){

            //方法体语句

        }

        和C语言函数声明形式唯一不同的是JAVA平台的成员方法最前面多了个"[方法修饰符]".这里是指public、private等,对此类中的成员方法的访问权限.

 

        2).方法签名:

        签名是JAVA平台区实现方法重载的标准.如下:

        public int getMaxValue(int value1,int value2){

            //Your Code.

        }

        此方法的签名为:

        getMaxValue(int,int)

        签名分成:方法名、参数类型、参数个数三部分.JAVA语言依据此来区分应该选用哪个方法来重载.

 

        3).类体方法的调用.

        JAVA平台类的调用形式和C中结构体(struct)引用很相仿.如下面示例:

public class PassMessageDemo{public static void main(String[] args){Hello hello = new Hello( );//声明一个Hello类的实例对象hello.sayHello( );//调用对象hello的sayHello方法hello.sayHello( );//调用对象hello的sayHello方法  hello.sayHello( );//调用对象hello的sayHello方法}}class Hello{//定义一个表示问候的成员方法void sayHello( ){System.out.println("Hello,good morning!");}}


        4).类体方法实现类"字段"的访问接口

        有时候在一个类里面的"字段"被private修饰符修饰的时候,只能在类内部本身可访问,不能被外部类去访问.这时候我们可以实现一个外部类可访问的类方法(public)来实现对类内部私有字段的间接访问.如下面示例:

public class AutoCar{private String brand;//表示汽车的品牌private float exhaust;//表示汽车的排汽量private int speed;//表示汽车的速度//获得属性brand的值public String getBrand(){return brand;}//获得属性exhaust的值public float getExhaust(){return exhaust;}//获得属性speed的值public int getSpeed(){return speed;}//设置属性speed的值public void setSpeed(int newSpeed){speed = newSpeed;}}

 

        5).方法重载

            假设有这样一种情况:我们要做一个类来绘制各种类型的数据(字符串、整数等),如果为每一个方法都起一个名字是很麻烦的.如:

drawString()、drawInteger()、drawFloat()等.我们可以只实现几个名字均为draw()的方法,通过给这个方法传递不同的参数类型,交由编译

器来处理.如下:

           

public class DrawDate{    public void draw(String s){        ...    }    public void draw(int i){        ...    }    public void draw(int i,double f){        ...    }}


3.类的构造器

    JAVA平台下构造器的意义是构造并初始化实例对象.它有以下特点:

    1).构造器和类名一样;

    2).构造器和方法一样,可以有0个、1个或多个参数;

    3).构造器没有反回值和返回类型;

    4).构造器不能被显式调用.构造器总是和new运算符一起被调用,在创建一个类的对象的同时,系统会自动调用该类的构造器为新对象初始化.

    下面给出一个示例:

class AutoCar{    private String brand;    private float exhaust;    private int speed;    public AutoCar(String oriBrand,float oriExhaust,int oriSpeed)    {        brand = oriBrand;        exhaust = oriExhaust;        speed = oriSpeed;    }    public void autoCarInfo()    {        System.out.println("brand = " + brand );        System.out.println("exhaust = " + exhaust);        System.out.println("speed = " + speed);    }}public class ReloadDemo{    public static void main(String[] args){        AutoCar autoCar = new AutoCar("Audi",1.5f,80);        autoCar.autoCarInfo();    }}
输出结果:

root@seven-laptop:~/learn/java/java_base/test# java ReloadDemobrand = Audiexhaust = 1.5speed = 80root@seven-laptop:~/learn/java/java_base/test# vim ReloadDemo.java 

4.向方法或构造器内传递信息

    当向一个对象传递消息时,只能通过此对象暴露出来的手段进行交互(如方法、接口等).向方法和构造器传递参数和C中的函数调用差不多.不再累赘.