学习重点:
变量、函数、数组、运算符
变量:
简单的解释,变量就是可以改变值的量,变量是用来保存数据的,就像水杯是用来保存水的作用一样。数据的类型也有不同,就像水杯和皮包中的内容不能互换一样。变量本身不占用内存空间,而是其中的数据会占用部分内存空间。变量相关内容还包括数据类型、数组和常量,后面会详细介绍。
函数:
函数又叫做方法,用来实现某个特定的操作过程,就像把面团放进烤箱就会出来面包一样,烤箱中就是特定的操作过程。
最近领导想自己做面包了,去商场选烤箱,导购MM耐心的给我介绍:A品牌烤箱需要放进一个面团,会出来一个面包(不错,很方便);B品牌烤箱放进去一个面团、一根香肠,会出来一个热狗(流口水);C品牌烤箱什么都不放就可以出来汉堡堡?(太好了,就要它)。原来函数可以有0至N个参数。
上述的例子中,函数都会给我们返回一点东西,但有时候函数并不需要返回,例如烤箱坏了,我们调用维修函数,维修对烤箱的性质进行了调整,并没有给我们什么新的东西。记住,函数可以有或没有返回值。
函数相关的概念还有调用、传参等,后面我们会慢慢学习。
数据类型:
Java是一种强类型语言,它的数据类型包括基本数据类型(8种)、类、接口和数组。
Java的8种基本数据类型:
基本类型的封装类:
为什么需要封装类?
基本数据类型不是类,不是继承Object;
基本数据类型没有用来进行类型转换和助理的各种方法;
数据类型转换:
我们在具体的开发过程中,常常需要把一种类型的值赋给另一种数据类型的变量,这样我们就需要转换数据类型。
1、自动类型转换:
自动类型转换需要在互相兼容的数据类型间进行,比如数字类型是相互兼容的,而和字符串类型或布尔类型则不兼容。
只能有小范围数据类型向大范围数据类型转换,就像可以把杯子中的水全部倒入水盆中,而水盆中的水不能完全倒入杯子中那样。例如:
byte b = 21;
int i = b; // 正确的,byte取值范围小于int取值范围
short s = i; // 错误的,int取值范围大于short取值范围
2、强制类型转换:
强制转换为了解决不兼容数据之间的转换,这是一种显性的类型转换,格式为:(type) value; 例如:
int i = 128;
byte b = (byte)i;
128超出了byte的取值范围1,转化完成后b显示为-128,如果a等于129,则b将显示为-127直到byte的256个范围用完后开始取模。
复杂数据类型:
Java 虚拟机(JVM)定义了索引数据类型:
Java 没有指针,采用的是地址引用法。
一个对象可以被一个以上的索引引用。
索引类型分为三种:
类;
接口;
数组;
类:
类是指定义属性和方法的数据类型,类需要声明和实例化,例如下面是一个简单的类定义:
class Student{ public Student(){ } } |
public interface MyInterface{ public void work(); } |
这样所有实现了MyInterface接口的类就必须实现work方法,所以说接口定义了类的行为,可以理解成一种模版。
数组:
将多个基本数据类型或复杂数据类型组织在一起就成为了数组,数组在内存空间中是连续排列的。
int [] arr = null;
int [] arr = new int[5];
int [] arr = {1, 52, 31, 9};
MyClass [] mc = null;
MyClass [] mc = new MyClass[8];
注:针对复杂数据类型还需要针对每个数组元素进行构造方可使用。
数组是多个相同类型变量的集合;
数组可以定义成任何数据类型;
数组可分为一维数组和多维数组;
数组种的元素通过下标访问,下标由0开始;
数组由一对以上的方括号“[]”表示。
一维数组相当于相同类型变量的列表。
格式: TYPE name[];
例如: int number[];
此时数组 number 的初始值为 null 。
初始化: name = new TYPE[size];
例如: number = new int[12];
所有元素的初始值为该类型的默认初始值,int 类型为0 ,给每个元素赋值需要遍历所有数组元素。
number[0] = 19;
number[1] = 24;
number[2] = 13;
……
number[11] = 8;
对于简单数组的赋值可采用下面方法:
int number[5] = {23, 16, 9, 17, 31};
如果大括号中填写的数值不够声明中的数字:
int number[5] = {23, 16, 9};
剩下的 number[3] 和 number[4] 取值为该类型默认值0。
还可以在声明时不写数组数量,由右边大括号中的具体数量作为直接参考:
int number[ ] = {23, 16, 9, 17, 31};
例,在控制台将26个英文字母按顺序打印出来:
char c[] = new char[26];
for ( int i = 0; i < c.length; i++ ) {
c[i] = (char) (‘a’ + i);
System.out.print( c[i] + “ ” );
}
多维数组:
在 Java 中,二维或二维以上数组统称多维数组,我们可以把多维数组理解成数组的数组。
int twain[ ][ ] = new int[ 3 ][ 4 ];
例3.1:编程将上页图形中的数组赋值并打印到控制台。
多维数组在分配内存时,可以只为第一维指定内存,然后再分配其它维的内存,并且不需要每个维的元素数量都相同。
例3.2:编程实现一个二维数组,声明时先给第一维分配内存,第二维在循环中按照递减方式分配内存。
对二维数组进行初始化时,可以使用一对大括号“{}”中间再加一些大括号“{}”的方法。
int myArray[ ][ ] = {{2, 3, 12}, {51, 0, 23}, {1, 37, 20}};
三维数组也可以用同样地方法。
例3.3:编程实现一个三维数组,数组中各个元素都是程序分配的。
运算符:
Java 的运算符可归纳为四种:
算术运算符
位运算符
关系运算符
逻辑运算符
算术运算符常用于算术表达式中,使用方法和我们平时使用的算术运算一样:
例3.4:编程验证位运算符
运算两个运算数的对比关系就叫关系运算符:
关系运算符有两个运算数:
关系运算符一定返回布尔值;
关系运算符经常用于条件或循环语句,如:if语句、for语句、while语句等。
例3.5:编程实现条件语句和循环语句,使用多种关系运算符。
逻辑运算符又称为布尔运算符,它的操作数只能是布尔类型的,而且逻辑运算的结果也是布尔类型的。
例3.6:编程验证逻辑运算符
运算符的优先级:
本文中涉及的所有源代码下载地址:http://download.csdn.net/source/556311
<待续>
本Blog中文章均为原创,欢迎转载,但请著名作者:米强,出处:http://hi.csdn.net/mq612