本周学习
书本第二章,第三章,编程练习
复习
1.Java中的数组
当创建一个数组对象时,实际创建了一个引用数组,每个引用都会被自动被初始化一个 特定值,null。
//定义一个数组
int[] a;
int b[];
//分配空间给数组,初始化
a=new int [10];//这里a在栈里,new int[10]在堆里
for(int i=0;i<10;i++){
System.out.print(a[i]);
}
int[] c={2,3,4,5,6};
//for-each结构,打印c的全部元素
for(int i:c){
System.out.print(i);
}
2.赋值
对一个对象进行操作时,真正操作的是对对象的引用
//创建两个Dog对象d1,d2
Dog d1,d2;
d1=d2;
原本d1,d2在栈区,分别指向堆区的两个不同的对象区域,d1=d2后,d1,d2都指向d2的区域,d1在堆区占用的空间会在垃圾回收器检测到后销毁。
3.static关键字
所有对象共享,只占一份存储空间,与任何类或对象无联系,所以没有创建对象也可以调用static方法。
class Apply{
//定义static字段和方法
static int i= 100;
static void fun(){
}
//通过对象使用,或直接用类名使用
Apply a=new Apply();
a.i++;
Apply.i++;
a.fun();
Apply.fun();
}
4.创建一个类
和c++类似
class 类名{
字段
方法
}
//与一些Java包同名的类
class Math{
}
class String{
}
因为创建的这两个类是在你自己创建的包里面,所以可以这样定义一个类,但不建议这样用,在同包下其他文件如果要使用这些Java同名类的话会出现错误
//比如和以下语句使用,会分不清想要使用的是Java里的Math包还是上面自己定义的Math类
class Apply{
Math m=new Math();
}
同一个包里不能定义同一个类,比如ch2包里的类Demo1,Demo2…不能同名
5.注释和嵌入式文档
安装好JDK后,javac,java这两个文件分别负责编译和运行
javadoc是用于提取注释的工具,输出一个HTML工具,可以用web浏览器查看
javadoc只为public和protected成员进行文档注释
project----generate javadoc----勾选项目----configue-----找到javadoc.exe打开----finish
在文件夹里找到index.html,打开可以查看
6.一些标签
@see链接到其他文档
@docRoot 产生到文档根目录的相对路径,用于文档树页面的显示超链接
@version 标注版本信息
@author 标注作者
@since 指定程序代码最早的使用版本
这些javadoc标签使用后会显示在javadoc文档里
7.方法调用里的别名问题
class Letter{
char c;
}
public class Apply{
static void fun(Letter y){
y.c='z';
}
public static void main(String[] args){
Letter x=new Letter();
x.c='a';
System.out.println(x.c);
fun(x);
System.out.println(x.c);
//输出
//a
//z
预习第四章
1.true和false
在c和c++里允许使用数字来作为布尔值使用,Java里不允许
2.if-else语句
与c,c++里一样,有单独使用的if语句,有if-else语句,有else if语句
3.迭代语句
while,do-while,for
while(布尔表达式){
}
do{
语句
}while(布尔表达式);
for(初始化表达式;布尔表达式;步进表达式){
语句
}
for语句中的初始化表达式,布尔表达式,步进表达式都可以为空
4.Foreach语法
这是一种更简洁的for语法,用于容器和数组,不必创建Int变量去对由访问项构成的序列进行计数,foreach会自动生成每一项
for(float x : f){}
//定义一个float型变量x,将每一个f的元素赋给x
5.break和continue
break语句中断循环,直接跳过后续语句,跳出循环,不再进行循环
continue停止当前循环,回到循环起始处,开始下一次循环
6.switch语句
switch(整数选择因子){
case 整数值:语句;break;
case 整数值:语句;break;
case 整数值:语句;break;
…
}
int c=rand.nextInt(26)+'a';
switch (c){
case 'a':
break;
case 'b':
break;
case 'c':
break;
case 'd':
break;
case 'f':
print("this is f");
break;
default:print("else");
}