您的位置:首页 > 编程语言 > Java开发

Java基本语法--变量

2012-09-20 21:30 218 查看
Variables

    

    就像之前的课程所说一样,一个对象把它的属性存在fields里面;

    

        int cadence = 0;

        int speed = 0;

        int gear = 1;

    

    前面介绍了fields的概念,但是可能你还有些问题,如:变量的命名规则,除了int以外还有别的数据类型?当变量声明的

    时候他初始化了吗?变量是不是有一个默认值如果没有初始化,我们会在这里一一解答,但是在讲之前,有些约定你必须注意,

    在java里面 “field”和“variable” 都被使用;这个是新开发人员普遍的误区,都认为field和变量是一回事。

    

    在java语言里,定义以下几种类型的变量:

    

        1.变量实例(不是静态 空间) 专业的说,对象把他们独立的属性存在 非静态空间, 也就是说,fields 定义没有static

        关键字,非静态领域被认为是变量实例,因为他们的变量对于不同的类实例来说是不同的, 一个bike的currentSpeed跟另外

        一个bike的currentSpeed是不同的

        2. 类变量 (静态变量) 一个类的的static变量,它告诉编译器 只有这个变量只有一块拷贝地址,无论这个类被多少次实例化。

        如 对某一种特别的自行车,可以定义 static int numGears = 6;将创建这么一块静态空间,另外 如果不想修改他的大小 直接

        在前面加final 这样 这个gears的个数就不会被改变了。

        3. 局部变量 就是指在区域里面定义的变量,如在一个方法中定义的变量,它的作用域只能在这个方法内有效,出了作用域外就

        没有作用了。

        4. Parameters 你已经看到过参数的例子了 就是函数中的变量 通过外部传进来 作用函数内部。主要参数是变量不是fields

        

    命名

    

    每一种编程语言都有自己的命名规范,java也不例外,java的命名规则和约定如下:

    

        1.java区分大小写,约定都以字母开始,不能用别的符号,虽然以“_”开始时合法的 但是最好别用,而且变量之间不能用空格

    

        2. 命名建议 尽量使用全拼,方便代码阅读,代码本身就是注释。 然后选择value不能使用java关键字

        

        3.如果你的变量只有一个单词 用小写,如果有多个 第一个小写 后面几个开头大写,如果你的变量是常量,就用大写形式,每个

        单词之间用下划线。除此之外下划线一般不使用

        

    如下优秀的命名: int speed;  String gearRatio;  int currentGear;  static final NUM_GEARS = 6;

        

Primitive Data Types

    java语言如果是static-typed的, 就是说所有的变量必须在使用前被声明。这种声明并初始化的方式如下:

    

        int gear = 1;

    这样做告诉你的程序 一个叫gear的变量已经存在了, 并且拥有数据 。除了int java支持另外7种原始数据类型,一个原始数据类型是指

    提前被语言定义,并且命名为一个保留的关键字,原始类型变量不和其他原始类型变量共享属性,8种java语言支持的原始数据类型:

        

        byte byte数据类型是一个8位 范围 -128到127, byte类型被用来存储大的数组内存,还可以替代int

        

        short short data 16位  范围 -32768到32767 跟byte一样 可以用来存储打的数组内存

        

        int  32位 范围 -2147483 到2147483647 这个数据类型默认选择使用表示数据大小 足够存储数据在你的程序里 如果不够 还可以更大的long

        

        long  64位  主要用来替代int来表示更大的数据

        

        float 32 用来存储浮点型的数据;

        

        double 用来存储小数 默认

        

        boolean 有两种状态 true 和 false

        

        char 16-bit Unicode 最小 ‘\u 0000’ 最大 ‘\uffff’.

        

        除此之外 java语言还有之中特殊的数据类型 String 不用new就可以使用的对象

        

    Arrays

    

        数组时一个容器对象,用来容纳多个简单类型的变量, 数组的长度在数组创建的时候就已经确定好了,创建以后 这个长度就定死了。

        数组的声明: int[] anArray;

        数组demo:

        

            class ArrayDemo {

                public static void main(String[] args) {

                    // declares an array of integers

                    int[] array;

                    

                    //allocates memory for 10 integers

                    array = new int[10];

                    

                    //initialize :

                    for(int i =0; i < 10; i++){

                        array[i] = i;

                        System.out.println("The Element at index" +

                            i + ":" + array[i]);

                    }

                }

            }

        

        除了int数组 还有别的类型数组 如 byte short long double float char string boolean

        同时 你可以把[]转移到变量后面 如: int array[];

        这种方式不好,建议还是用 第一种方法 这样能一眼就看出是Array

        

    创建 初始化 并且访问数组

    

    第一种方法就是用new 如之前的demo: array = new int [10];

    

    如果这个语句没有 就会报错 :ArrayDemo.java:4: Variable anArray may not have been initialized.

    

    第二种方法: int[] array = {10,9,8,7,6,5,4,3,2,1,0};

    

    数组长度计算 ;

    int length;

    int[] array = {....};  

    length = array.length;

    

    copying arrays

    

    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

    

    举个例子:

        class ArrayCopyDemo {

        

            public static void main(String[] args) {

            

                char[] copyFrom  = {'f','u','g','u','o','c','a','n'};

                char[] copyTo = new char[];

                

                System.arraycopy(copyFrom,2,copyTo,0,7);

                System.out.println(new String(copyTo));

            

            }

4000

            

        }

    

    

    

    

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息