Java周记04

本周学习

书本第二章,第三章,编程练习

复习

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':
       breakcase 'b':
      breakcase 'c':
       breakcase 'd':
       breakcase 'f':
       print("this is f");
       breakdefault:print("else");
}
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页