JAVA中的类

    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 ReloadDemo
brand = Audi
exhaust = 1.5
speed = 80
root@seven-laptop:~/learn/java/java_base/test# vim ReloadDemo.java 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值