4.Java成员变量和成员方法

成员变量

成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下:
   访问修饰符 修饰符 类型 属性名称=初始值;
  • 访问修饰符:可以使用四种不同的访问修饰符中的一种,包括public(公共的)、protected(受保护的),无修饰符和 private(私有的)。public 访问修饰符表示属性可以从任何其它代码调用。private 表示属性只可以由该类中的其它方法来调用。protected 将在以后的课程中讨论。
  • 修饰符:是对属性特性的描述,例如后面会学习到的:static、final 等等。
  • 类型:属性的数据类型,可以是任意的类型。
  • 属性名称:任何合法标识符
  • 初始值:赋值给属性的初始值。如果不设置,那么会自动进行初始化,基本类型使用缺省值,对象类型自动初始化为 null。

成员变量有时候也被称为属性、实例变量、域,它们经常被互换使用。

成员方法

成员方法就是对象所具有的动态功能。Java 类中方法的声明采用以下格式:
    访问修饰符 修饰符 返回值类型 方法名称 (参数列表) throws 异常列表 {方法体}
  • 访问修饰符 : 可以使用四种不同的访问修饰符中的一种,包括public、 protected、无修饰符和 private。public 访问修饰符表示方法可以从任何其它代码调用。private表示方法只可以由该类中的其它方法来调用。protected 将在以后的课程中讨论。
  • 修饰符:是对方法特性的描述,例如后面会学习到的:static、final、abstract、synchronized 等等。
  • 返回值类型:表示方法返回值的类型。如果方法不返回任何值,它必须声明为 void(空)。Java 技术对返回值是很严格的,例如,如果声明某方法返回一个int值,那么方法必须从所有可能的返回路径中返回一个int值(只能在等待返回该 int 值的上下文中被调用。)
  • 方法名称:可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。
  • 参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。在下面的方法中只有一个形式参数,用 int 类型和标识符 days 来声明:
        public void test(int days){}
  • throws 异常列表:子句导致一个运行时错误(异常)被报告到调用的方法中,以便以合适的方式处理它。异常在后面的课程中介绍。
  • 花括号内是方法体,即方法的具体语句序列。

示例:比如现在有一个“车”的类——Car,“车”具有一些基本的属性,比如四个轮子,一个方向盘,车的品牌等等。当然,车也具有自己的功能,也就是方法,比如车能够“开动”——run。
要想车子能够开动,需要给车子添加汽油,也就是说,需要为run方法传递一些参数“油”进去。
车子就可以跑起来,这些油可以供行驶多少公里?就需要run方法具有返回值“行驶里程数”。

package net.weixueyuan.www.javatest;
public class Car {// 车这个类
    private String make;// 一个车的品牌
    private int tyre;// 一个车具有轮胎的个数
    private int wheel;// 一个车具有方向盘的个数
    public Car() {
        // 初始化属性
        make = "BMW";// 车的品牌是宝马
        tyre = 4;// 一个车具有4个轮胎
        wheel = 1;// 一个车具有一个方向盘
    }
    /**
    * 车这个对象所具有的功能,能够开动
    *
    * @param oil 为车辆加汽油的数量
    * @return 车辆行驶的公里数
    */
    public double run(int oil) {
        // 进行具体的功能处理
        return 100*oil/8;
    }
    public static void main(String[] args){
        Car c=new Car();
        double mileage=c.run(100);
        System.out.println("行驶了 "+mileage+" 公里");
    }
}
main方法是一个特殊的方法,如果按照public static void main(String[] args)的格式写,它就是一个类的入口方法,也叫主函数。当这个类被java指令执行的时候,首先执行的是main方法,如果一个类没有入口方法,就不 能使用java指令执行它,但可以通过其他的方法调用它。

这里,注意一下形参和实参的区别:
  • 形参:就是形式参数的意思。是在定义方法名的时候使用的参数,用来标识方法接收的参数类型,在调用该方法时传入。
  • 实参:就是实际参数的意思。是在调用方法时传递给该方法的实际参数。

比如:上面的例子中“int oil”就是个形式参数,这里只是表示需要加入汽油,这个方法才能正常运行,但具体加入多少,要到真正使用的时候,也就是调用这个方法的时候才具体确定,加入调用的时候传入“100”,这就是个实际参数。

形参和实参有如下基本规则:
  • 形参和实参的类型必须要一致,或者要符合隐含转换规则
  • 形参类型不是引用类型时,在调用该方法时,是按值传递的。在该方法运行时, 形参和实参是不同的变量,它们在内存中位于不同的位置,形参将实参的值复制一份,在该方法运行结束的时候形参被释放,而实参内容不会改变。
  • 形参类型是引用类型时,在调用该方法时,是按引用传递的。运行时,传给方法的是实参的地址,在方法体内部使用的也是实参的地址,即使用的就是实参本身对应的内存空间。所以在函数体内部可以改变实参的值。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。