《Java程序设计》第二章学习笔记

    xiaoxiao2022-07-05  177

    第二章

    一·教材学习内容总结

    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)精度高的赋给精度低的就要强转换:(类型名)要转换的值

    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() 或者 System.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那一行一直出错,鼠标移上去会出现一个选择框,当时并不知道是什么意思。然后就到上搜索为什么Scanner这一行会出错,原来可以点击出现的对话框里的一个import,这时的Scanner就不会报错了。

    四·感悟,思考

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

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

    最新回复(0)