Java基础(二)

一、Java语法基础

  1、Java注释

  java的注释有三种①单行注释"//"  ②多行注释使用"/*"开头和"*/"结尾,此种注释不可嵌套使用  ③文档注释使用"/**"开头和"*/"结尾 对于前两种不多解释,第三种是方便自动生成API文档

  和大多数程序设计语言一样,java的注释不会出现在编译后的可执行程序中,我们敲代码的时候,可以根据需要添加任意多的注释,正如毕老师所要求的那样,把写程序的思路在敲代码之前写出来;还有就是加强程序的可读性、可维护性,不管是对自己,还是对别人阅读你的程序都有很大的好处。

  2、关键字

  关键字就是Java语言中有特殊含义的单词如public、class,extends、Interface等等。

  3、保留字

  暂时没有赋予该单词特殊含义,日后有可能要使用的一些单词,例如goto、const等等。

  4、标识符

  每种编程语言都允许开发者自定义一些名词,例如java中的包名、类名、变量名,可由任意数字、字母、下划线(_)、美元符号(&)组成,但是不能以数字开头,也不能是关键字和保留字。

  5、常量

  java中常量用关键字final声明,final关键字表示只能被赋值一次而且不能被改变,习惯上用大写例如final int X=1;

  6、变量

  Java为强类型语言,万物皆对象,是对象肯定有类型。声明变量时,变量类型位于变量名之前例如int a=0;分号表示语句结束。它也是属于标识符范畴。变量空间可以重复使用,变量声明后必须初始化。

  变量有作用域也就是生命周期,全局变量是在程序执行完毕后所占用的内存才会释放,而局部变量一对花括号便是其作用域,作用域外访问不到。

  变量的数据类型、所占空间以及其可表示的数据范围下面用一个图来展示(下图是网上找的觉得很好),方便记忆:

  

  使用变量要注意几点:

  ①Java数据类型转换:进行运算时低精度会自动向高精度转换,而高精度要转为低精度必须要强转。

  ②变量的赋值不要超出相应类型的表示范围,否则会运行时溢出或者编译报错。

  7、运算符

  ①算数运算符

  在java中使用运算符+,-、*、/分别表示加、减、乘、除运算、%表示求模、++、--表示自增自减要注意它不能操作常量例如1++这是非法的,特别的对于"+"有字符串的情况下表示连接符。

  ②赋值运算符

  赋值语句中也可采用x+=1、x-=1、x*=1、x/=1、x%=1,它们是简化格式书。

  ③关系运算符

  常用的关系运算符有==、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、==和!=。

   ④逻辑运算符

  逻辑运算符有&、|、&&(逻辑与)、||(逻辑或)、!(逻辑非),其中&&和||是按照短路等方式求值,意思是第一个表达式已经能确定表达式的值得时候,后面就不计算了。

  ⑤三目运算符

  a>b ? a : b,返回两个数中的大数。三目运算符经常起到if else语句的效果而且更简洁。

  ⑥位运算符

  位运算符有&(按位与)、|(按位或)、^(异或)、~(非或者取反)、<<(二进制位左移)、>>(二进制位右移)、>>>(无符号位右移用0填充高位),特别说明没有<<<运算。

  需要注意:左移时空位用0补全,右移时正数空位时高位用0补全,负数则高位空位用1补全,注意负数以补码的形式存在于计算机中,故参与移位的运算的是负数的补码而不是源码,转换为十进制时可运用公式补码=反码    +1。

  8、选择循环语句

  一般来说程序的结构有三种:顺序结构(从上到下依次执行)、选择结构(根据条件来决定要执行的语句)、循环结构(根据判断条件决定程序主体的执行次数)。

  常见选择结构语句有if、if else、switch语句,循环结构有do while、while、for语句,对于前两种循环开发者不需要明确知道循环次数而for循环需要已知循环次数。

  循环的中断有continue语句和break语句,区别在于前者只是退出本次循环而后者是直接结束循环。

  9、函数

  开发函数目的在于封装经常被调用的语句并实现特定的功能,函数必须定义在类中。

  函数的重载:函数的重载与其返回值类型无关,只跟其形参个数和类型有关。

  10、数组

  数组是一组相关数据的集合,并且这些数据类型必须完全相同。数组用于封装数据也是属于实体,故存储在堆内存中而数组名存储在栈内存中。

  数组的初始化方式有两种分别为动态初始化和静态初始化下面举例说明:

  int[] a={1,2,3,4,5,6};这是静态初始化。

  int[] b=new int[10];此种情况,分配了内存空间,如果没有显示给它初始化,数组里面元素默认初始化为0;一般情况下多数用for循环给数组中每个元素赋值,这是属于动态初始化。

  数组通过数组名[元素索引]来访问,元素索引从0开始例如int[] b=int[10] 可以使用int[0]访问其第一个元素,最大索引值为(b.length-1),访问其它元素值依此类推。

  数组按维度可分为:一位数组(如int[])、二维数组(相当于表格数据int[][])、多维数组(int[][][]...)、多维数组相对来说用的较少,也不推荐大家使用。定义和访问方式都类似,不再赘述。

  10、面向对象(Object Oriented简称OO)

  面向对象有三大特点:封装、继承、多态。

  封装:隐藏对象内部的属性和方法的实现细节,外部只能通过对象提供的接口实现对数据的操作。

  继承:子类继承父类的所有属性和方法,就是假设类B extends A,那么A就继承了B中的所有属性和方法,但是父类A中的声明为private的私有属性和方法虽然也继承了,但是却没有直接的访问权限,可以通过父类的   提供的接口实现间接访问,这点初学者尤其要注意。另外也可以对子类根据需要进行扩展单纯的继承是没有意义的,另外需要注意如果不希望自己写的类和方法被继承使用关键字final声明即可。

  多态:Java中多态的体现方式有:①使用子类实例化父类 ②重载(方法名相同但参数列表不同) ③覆写(子类中覆写父类中的方法)

  类中的属性和方法的访问权限由大到小:public(公共,同包或不同包均可调用)→protected(受保护的,同一个包和它的子类可以访问)→default(默认的,同包中的类调用)→private(私有,只有本类可以直接   使用)  

  this关键字:this始终指向当前调用类中属性或方法的对象。

  static:使用static声明的属性和方法被,所有类的实例所共享并且可以使用类直接调用

  代码块:代码块分为三种①普通代码块(像方法里的位于花括号之间的语句)②构造块(直接写在类中的代码块)③静态代码块(在类中声明为static的代码块)

  静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块(无论创建多少个对象只执行一次而且先于主函数执行) → 构造代码块(每次创建对象都会执行) → 构造函数(每次创建都会调用)

  

posted @ 2014-04-20 16:23  大佬Man  阅读(401)  评论(0)    收藏  举报