天天看点

java基础--java语法

2.java语法

2.1java的变量

.java中的标识符的要求:

  1,只能是字母,数字,_,$

  2,数字不能作为标识符的开头。

  3,大小写敏感。

  4,没有长度限制。如:arrayoutofboudleexception

  5,标识符不能是关键字。

   一般来说,类的名字以大写字母开头。

   方法和变量的名字以小写字母开头。

   标识符的名字应当具有含义,如age, name

   表达式:1,由运算符和变量组成。2,都会有返回值。

   简单表达式:a/b;复合表达式:"a/b="+(a/b);

.对于任意一个变量只要定义都需要三部分的内容

   变量的类型    变量名称 = 变量的值 (变量的值必须和类型一致)

.变量的类型

  基本数据类型:4类8种

  1、整型-->byte(1)    short(2)    int(4)    long(8)    -->int(默认类型)

     定义long    long num = 12l;

  2、浮点类型--> float(4)    double(8)    --->double(默认类型)

     定义float    float f = 12.0f;

  3、布尔类型(boolean)--> true false

  4、字符类型(char)--->字符类型不是字符串使用的是' '(单引号)进行定义,而且只能有一个字符

     char c = 'a'; char cc = 'cc';//错误,只能有一个字符。unicode(2个字节)

·变量的类型转换()

  1、小类型的值会自动转换为大类型的值 int a = 10    double b = 12.5    a+b-->double类型

  2、要把一个大类型的值存储到小类型中,需要进行强制类型转换,如果不转换,会编译出错

          强制类型转换的方式:(int)12.5--->就把12.5这个double类型转换为int类型了

3、当char、byte和short进行运算时会自动转换为int类型

     byte b1 = 12; byte b2 = 32;  b1+b2--->是int类型

·变量的作用域

  花括号内有效,在同一个作用域中不能重复定义变量

·定义变量的规定

  第一:关键字用来定义变量(_sdfhj_sd)int double = 10;

  第二:对于类而言,定义的名称的第一个字母用大写,对于函数或普通的变量而言,

        第一个字小写 之后遵循驼峰标识。

思考:

short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1; (s1+1 运算结果是int 型,需要强制转换类型)

short s1 = 1; s1 +=1;(可以正确编译)

·引用类型变量(string)

    string 类提供了数值不可改变的字符串 string s=new string(“abc”);创建了两个对象

    1,在字符串池中创建一个对象(此对象是不能重复的)

    2,new出一个对象。java运行环境有一个字符串池,由string类维护。

       执行语句string s="abc"时,首先查看字符串池中是否存在字符串"abc",如果存                  在则直接将"abc"赋给s,如果不存在则先在字符串池中新建一个字符串"abc",然后再将

       其赋给s。执行语句  string s=new string("abc")时,不管字符串池中存              

       在字符串"abc",直接新建一字符串"abc"

      (注意:新建的字符串"abc"不是在字符串池中),然后将其付给s。

      2,初始化 (局部变量而言,必须初始化才能使用)如:age=10;

      3,通过变量的名字对变量进行操作,如:age=other;

       赋值时,左=右

  1)数据性质是否一样。

  2)所占用的内存空间上考虑(左>右)不用类型转换。(左<右)要类型强制转换,

如:int age=1;

                 longl=10;

                 age=(int)l;

符号位:0代表正数,1代表负数。

string 和stringbuffer 的区别

java 平台提供了两个类:string 和stringbuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个string 类提供了数值不可改变的字符串。而这个stringbuffer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用stringbuffer。典型地,你可以使用stringbuffers来动态构造字符数据。

2.2java运算符

2.2.1、+、-、*、/、%(算术运算符)

   2.2.2、逻辑运算符(>、<、>=、<=、==、!=)12>11-->true

   2.2.3、自增和自减

  注意:

      自增(++),自减(--)运算符。

      前++:++a;先对a+1,再返回a+1之后的值。

      后++:a++;先返回a的值,然后对a进行+1。

      前++,后++共同的特点:a本身的值都会+1;

      区别在于表达式的返回值是不一样;用返回值来参与计算

2.4三目运算符

      ? :-->(boolean express)? a : b;如:char ch=(5>2)?'y':'n';

      ?前面的布尔表达式如果为真就执行a,否则执行b。

      (‘:‘左右两侧的返回类型要一致,且与ch的返回类型也一样)

2.3语句结构

      1,顺序

      2,条件(代码是否执行,依赖于一个特定的条件)

              if(boolean express){

                      xxxxxx;//如果布尔表达式为真就执行xxxxxx。

                      xxxxxx;

              }else{

                      xxxxxx;//如果布尔表达式为假就执行xxxxxx。

              }

      3,循环(相同的代码,被重复的执行多次)

              a,初始化循环条件。b,确定循环条件。c,确定循环变量在循环体中的变化。

              (1)a;

                      while(boolean express){

                              xxxxxxxxx;//如果布尔表达式为真就执行xxxxxx

                              xxxxxxxxx;

                              c;

                      }

              (2)for(a;b;c){

                  }

              (3)do{

                              xxxxxxxxxx;//循环体至少执行一次;

                              xxxxxxxxxx;

                  }while(boolean express);

                  while(xxx){

                              xxxxxx;

                              bread;//或者continue;

                  break :用在循环或分支里,用于退出整个循环或分支

                  continue :用在循环里,用于结束本次循环。接着开始下一次循环

              4,分支

                          switch(var){

                                  case 1 : xxxxxx;

                                  break;

                                  case 2 : xxxxxx;

                                  ........

                                  default : xxxxxxx;//default后面可以不用break;

                          }

  注意:

      var:是一个整数表达式。因此传递给 switch 和 case 语句的参数应该

      是int、short、char 或者byte。long,string 都不能作用于swtich。

2.4函数

      函数所做的事情,可以将一个过程进行封装,将来只要调用函数就会调用整个过程

      函数的基本要素

              返回值 函数名(函数参数){

                                            函数体;

                                        }

      函数(方法):是由一些相关代码组成的集合,目的是为了解决一个特定的问题,或者实现

      某个特定的功能。

      函数(方法)一定有一个自己的名字,通过函数的名字执行函数中的代码。

      2,在java中如何定义函数:

              a,声明:public static void printmenu(int a,double b){.....}

              b,编写函数体:

              如: public static void printmenu(int a,double b){

                              xxxxxxxxxxx;

                   }

              函数(方法)里面不允许再有其它的函数(方法),函数(方法)的位置必须                    是并列的。

      3,调用函数:

              通过函数名,如pirntmenu(a,b);

              public static void main(string argv[]){

                          xxxxxxxxxxxx;

                          printmenu(a,b);

                          xxxxxxxx;

              调用者-原数据->函数

              return 作用:1,结束本方法。2,返回结果。

              一个函数返回的值只能有一个。

      值传递。传递的是实参的值,

      被调函数使用的数都是实参的拷贝。

      是否改变实参,要看被调函数的设计。

2.5数组

一,数组:一维数组-->:三种声明方式

      (1)首先要声明。如:int[] array;

      (2)申请内存空间如:array=new int[2];

       array代表数组array[]的首地址(引用:引用类似c++里的指针。);当参数传递时,只

       要用数组的首地址就可以。

          1,数组中的元素类型要一致。

          2,数组长度不能缺省,不能改变,但可以删了重建。

          3,内存空间连续,有索引下标值(从0开始,最大length-1)

        优缺点:查询快,增删慢(链表,查询慢,增删快)

        只要有new在,就要为变量分配内存。 array.length//表示数组array的长度。

        array存的是array数组首变量的地址。

  二,数组的显示初始化:int[] array={1,2,3,4,5,6};

  三,int[] array=new int[]{1,2,3,4,5,6,7};

  数组的拷贝:

          public static int[] expand(int[] a){

              int[] b=new int[a.length*2];

              /* for(int i=0;i<a.length;i++){

                      b[i]=a[i];

                  这段代码等于下面那条代码

              */

              // 从a数组下标为0的位置开始拷贝,到b数组下标为0 的位置开始粘贴。

              // a.length为粘贴的个数。(一般为a数组的长度)。

              system.arraycopy(a,0,b,0,a.length);

              return b;//返回扩展后的数组b。b是代表数组b的首地址。

          }

  二维数组(数组的数组)-->:三种声明方

  二维数组的第二个[]在声明时可以留空,如:int[][] array=new int[4][];

  //留空说明该二维数组的列是以行的数组下标为数组名,再成为新的数组。

  一,声明:int[][] array=new int[3][4];//声明一个三行四列的整型二维数组。

  二,int[][] array={{1,2,3},{2,3,4},{2,5,7},{2,3,6}};

  三,int[][] array=new int[][]{{1,2,3},{2,3,4},{2,5,7},{2,3,6}};

  1,找对象(客观存在的事物);

  2,利用对象的功能。就是让对象干点什么;

  3,对象的属性可以是其他对象。

  4,对象还可以通过调用其他对象的函数产生联系。

  5,简单的对象构成复杂的系统。

  有什么:属性-------》 实例变量

  做什么:方法-------》函数

  对象的属性可以是其他对象

  对象还可以通过调用其他对象的函数产生联系

  简单的对象构成复杂的系统

  思想:解决问题的过程,

  总纲(优势)

  1,符合人的思维过程。

  2,编写出来的代码比较合理。如:可扩展性,可维护性,可读性等等。(存在就是合理),(贴     近生活)

  3,弱耦合性,

  4,可扩展性

  5,可复用性。不要重复制造轮子。

  6,更尽所能,更施其职。

继续阅读