201711671115 《Java程序设计》第二周学习总结

一·教材学习内容总结

1.标识符

1)用来标识类名,变量名,方法名,类型名,数组名及文件名

2)由字母,下划线,美元符号和数字组成

3)第一个字符不能是数字

4)不能是关键字

5)不能是true,false,null

6)区分大小写,hello与Hello是不同标识符

2.Unicode字符集

3.关键字一定是小写。(书P18有50个java的关键字)

4.基本数据类型

1)逻辑类型:boolean(true,false)

2)整数类型:byte(1个字节),int(4个字节),short(2个字节),long(8个字节,后缀L)

3)字符类型:char(2个字节)(转义字符:\n换行 \b退格 \t水平制表 \'单引号 \"双引号 \\反斜线)

4)浮点类型:float(4个字节,后缀f或F,保留8位有效数字),double(8个字节,后缀d或D,可省略,保留16位有效数字)

5)观察一个字符在Unicode表中的顺序位置,可以用Int型类型转换,如(int)'A'。

public class example1 {

	public static void main(String[] args) {
		char chinaword='好';
		char you='\u4F60';
		int position=20320;
		System.out.println("汉字:"+chinaword+"的位置:"+(int)chinaword);
		System.out.println(position+"位置上的字符是:"+(char)position);
		position=21319;
		System.out.println(position+"位置上的字符是:"+(char)position);
		System.out.println("you:"+you);
	}

}

5·类型转换运算

1)按精度从低到高排列

byte short char int long float double   (当把级别低的变量的值赋给级别高的变量时,系统自动完成转换。eg.float x=100;会输出100.0)

2)精度高的赋给精度低的就要强转换:(类型名)要转换的值

eg.int x=(int)34.89;

3)注意:当把一个Int型常量赋值给一个byte,short和char型变量时,不可超出这些变量的取值范围,否则必须进行类型转换运算。eg.byte a=(byte)128;  a的值为-128             byte b=(byte)(-129);   b的值为127

public class example3 {

	public static void main(String[] args) {
		byte b=22;
		int n=129;
		float f=123456.6789f;
		double d=123456789.123456789;
		System.out.println("b= "+b);
		System.out.println("n= "+n);
		System.out.println("f= "+f);
		System.out.println("d= "+d);
		b=(byte)n;   //导致精度消失
		f=(float)d;   //导致精度消失
		System.out.println("b= "+b);
		System.out.println("f= "+f);		
	}
}

6.输入,输出基本数据

1)输入

scanner reader=new Scanner(System.in);

2)输出

System.out.println()orSystem.out.print(),前者换行,后者不换行。输出字符常量时不可以出现回车。

%d输出int类型  %c输出char类型  %f输出浮点型,最多保留6位小数  %s输出字符串 

%md输出int占m列  %m.nf输出浮点型占m列,小数点保留n位。

import java.util.Scanner;

public class example4 {

	public static void main(String[] args) {
		System.out.println("请输入20个浮点型数,每输入一个数按回车确认");
		System.out.println("最后输入数字0结束确认");
		Scanner reader=new Scanner(System.in);
		double sum=0;
		double x=reader.nextDouble();
		int count=1;
		while(x!=0) {
			sum=sum+x;
			x=reader.nextDouble();
			count++;
		}
		System.out.println("average="+sum/count);
	}

}

7.数组:相同类型的变量按顺序组成的一种复合数据类型。

1)声明数组

a.一维数组

数组的元素类型 数组名【】;

数组的元素类型 【】数组名;

b.二维数组

数组的元素类型 数组名【】【】;

数组的元素类型 【】【】数组名;

c.注意

int []a,b[];  是声明了一个Int型一维数组a和一个int型二维数组b

2)为数组分配元素

数组名=new 数组元素的类型【数组元素的个数】;eg.boy =new float[4];

3)数组属于引用型变量,数组变量中存放着数组的首元素的地址。

4)声明数组和创建数组可以一起完成:float boy[]=new float[4];

5)int mytwo[] []=new int [3] [4];指的是3个长度为4的数组。

6)a.length。二维数组的数组名.length的值是它含有一维数组的个数。

7)数组的引用

注意:如果想输出char型数组的引用,必须让数组a和字符串做并置运算。eg.System.out.println(" "+a);

public class example5 {

	public static void main(String[] args) {
		int a[]= {1,2,3,4};
		int b[]= {100,200,300};
		System.out.println("数组a的元素个数:"+a.length);
		System.out.println("数组b的元素个数:"+b.length);
		System.out.println("数组a的引用"+a);
		System.out.println("数组b的引用"+b);
		a=b;
		System.out.println("数组a的元素个数:"+a.length);
		System.out.println("数组b的元素个数:"+b.length);
		System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
		

	}

}

二·教材学习中的问题和解决过程

对课本上的转换,强类型转换,因为对精度的从低到高不太了解,所以不懂转换的意义,看了书上简单的例子就能明白原来是从高到低不需要()里加类型,而从低到高则需要,精度会损失。

三·代码调试中的问题和解决过程

在练习输入数据的课本上的代码时,scanner那一行一直出错,鼠标移上去会出现一个选择框,当时并不知道是什么意思。然后就到CSDN上搜索为什么Scanner这一行会出错,原来可以点击出现的对话框里的一个import,这时的Scanner就不会报错了。

四·感悟,思考

这一章讲到了数组,只是几页点了一下数组的基本概念,但是好像真的会比c++讲的数组来得更简单些,没有指针指来指去的烦恼(可能只是还没学到后面),但是这一章讲到的数组会令人舒服些简单易懂。

老师在29页的代码里留了个作业是画出流程图,之前的老师也会有要求让我们画出某个代码的流程图,但是没有好好地落实,所以一直对流程图很陌生。但是老师课上简单讲解了一下还是回忆起了一丝印象,画好流程图是打代码前地必要准备,更好的梳理代码的逻辑,立个flag要多练流程图。

五·学习进度条

猜你喜欢

转载自blog.csdn.net/Laufen_j/article/details/82823014