201871010101- Chen brother "object-oriented programming (java)" the second week of learning summary

                                                               

                                                                                                                                                     201871010101- Chen brother "object-oriented programming (java)" the second week of learning summary

 

project

content

This work belongs courses

<Classroom teacher blog link Home> https://www.cnblogs.com/nwnu-daizh/

Where this requirement in the job

<Job link address> <https://edu.cnblogs.com/campus/xbsf/2018CST1/homework/4519>

Job learning objectives

 

<Fill specific objectives>

  • Teachers adapt teaching methods, to complete the study this week, according to independent study theoretical knowledge requirements;
  • Master the Java Application Program Structure;
  • Master and variable data types Java language;
  • Learn to use Java operator construction of various types of expression;
  • Java Application control input and output technology;
  • Master the Java process control technology (branch, loop); (Key)
  • Math master class, String class usage. (difficulty)

 

 

 

Part I: similarities and differences between Java and C combined with relatively basic grammar, summarizes theoretical knowledge of this week (30)

A simple Java program should be shipped Program

1. identifier identified by the letter 0, underscore, dollar signs and numbers, and the first symbol is not a number.

 

   Identifier may be used: class name, object name, variable name, a method name, array name, file name, etc.

2. The keyword is a keyword in the Java language some words have been given a specific meaning. Common are: class, public, try, catch, if, float, import, void and so on. Keyword is not a variable name.

II. Notes

        Notes Java There are three ways Notes: 1. The footnotes have been this line by the end of //.

                                                       2./* and * / define a comment block.

                                                       3./** start, end with * / comment this method can be used to automatically generate documentation.

III. Data Types

1. Data Types Java is a strongly typed language. This means that each variable must declare one for the type.

  There are eight basic types of Java - integer types (int, short, long, byte) - floating-point type (float, double) - character types (char) - boolean (boolean)
2. integer type integer constant, said: decimal, octal, hexadecimal, binary
   Integer variable data into four types: int short long byte, Java in a range of integers running Java code and machine-independent Java no unsigned type.
   int type, variable definitions: int x; int height, age; definitions will be assigned: intheight = 180, age = 20; for int variables, 4-byte memory allocation, representing 32                                              
  short type, variable definitions: short h; short m, n; the same time define the assignment: shortm = 12, n = 20; for short variables, memory allocation, two bytes, representing 16,                                              
  long type, variable definitions: long sum; long I, jk; definitions will be assigned: longsum = 343435L; for long variable, 8 bytes of memory allocation, representing 64,                                             
  byte type variable definitions: byte w; byte x, y, z; assignment can be defined at the same time: bytex = 12, y = 24, z = 36; For variable byte, 1-byte memory allocation, 8 bits
 
3. Java floating-point type There are two floating point types: float double
   Floating-point constants, said: decimal, scientific notation indicates an overflow error and three special floating-point constants: --Double.POSITIVEINFINITY positive infinity negative infinity --Double.NEGATIVE_INFINITYNaN
   float型有效小数位数为6~7,变量的定义float x;floatx1,x2,x3,定义时赋初值floatx1=12.23f,x2=32.00f,x3,对于float型变量内存分配4个字节,占32位    
  double型有效小数位数为15,变量定义double d;doubled1,d2,d3,定义时可以赋初值doubled1=12.23,d2=32.00d,d3;对于double型变量内存分配8个字节,占64位。
4.字符类型常量‘a’、‘A’、‘8’、‘?'。变量定义char q;char c,type,cat;定义同时可赋值char c=‘a ',type,cat;19   字符集:Java采用unicode字符编码集,该编码集16位,含有65536个字符。
  Unicode(统一码、万国码)是一个编码规范,转义字符-前缀lu表示Unicode值,而十六进制的4位数字则表明具体是哪个Unicode字符。
5.布尔类型常量true、false变量的定义boolean x;boolean x,y;定义同时可赋值booleanx=true,y=false;在Java中,布尔值和整数不能相互转换
 
四.变量
1.变量在Java中,每一个变量属于一种类型。在声明变量时,变量所属的类型位于变量名之前。-double salary;-int vacationDays;-long earthPopulation;-boolean done;在Java中,一行可以声明多个变量。逐一声明每一个变量可以提高程序的可读性。 2.变量初始化一个变量声明后,必须通过赋值语句对它进行明确的初始化——永远不要使用一个未初始化的变量值。在Java中,可以在代码的任何位置进行变量声明。变量的声明尽可能地靠近变量第一次使用的地方,这是一种良好的程序编写风格。在Java中,不能在同一作用域内声明两个同名的变量
 
五.运算符
1.各种运算符:与面向对象运算相关Java提供的一个特别运算符new-这是一个用来创建对象的运算符。Java另外一个特别运算符Instanceof-返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。 2.需注意运算符的优先级与结合性优先级操作符结合性 3.数学函数与常量数学函数包含在Math类中。-幂函数-三角函数-指数函数及它的反函数等Java还提供了两个常量。-Math.PI-Math.E若不想在数学方法名和常量名前加前缀Math.”,可在源文件顶部加上以下代码即可。 4.强制类型转换强制类型转换的语法:(目标类型) 变量。
 
六.字符串
1.字符串Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。有内置的字符串类型,在标准Java类库中提供了一个Java预定义类String。
   程序中需要用到的字符串可以分为两大类:-创建之后不会再做修改和变动的不可变字符串String类;-创建之后允许再做更改和变化的构建字符串StringBuilder类。
 
七.输入输出
1.读取输入通过控制台进行输入时,需要构造一个Scanner对象,并与“标准输入流”System.in关联。-Scannerin=newScanner(System.in);-例3-2InputTest.javap55任务:测试InputTest.javaScanner类定义在java.util包中,因此使用时需将相应的包加载进来 2.文件输入与输出要想对文件进行读取,就需要一个用File对象构造一个Scanner对象。要想写入文件,就需要构造一个PrintWriter对象,在构造器中,需要需提供文件名。
 

八控制语句(程序控制流程由这些控制语句确定)

1.if、switch、for、while、do-while

2.Package语句和import语句

九.大数值

    a)如果基本的整型和浮点型数据无法达到要求的精度,可以使用java.math包中的两个类, BigInteger和BigDecimal。

    b)这两个类可以操作任意长的数字:BigInteger类实现了任意精度的整数运算, BigDecimal实现了任意精度的浮点运算

十.数组

1.数组是一种数据结构,它是有序数据的集合。数组中的每一个元素的数据类型都是相同的。

2.数组的声明:一维数组格式    数组元素类型    数组名字[];    数组元素类型[]  数组名字;   

                        二维数组格式:数组元素类型    数组名字[][];    数组元素类型[][]   数组名字;其中数据类型可以为java中的任意类型,包括基本类型和复合类型。也可用定义的类来声明数组;

  java在数组声明时并不为数组分配内存,在java中,数组是独立的类,有自身的办法。

3.数组的创建

数组声明后,要用new运算符为其分配内存空间,分配内存空间时必须指明数组的长度。

格式:数组名字=new  数组元素类型[个数]

 

第二部分:实验部分

实验名称:实验二 Java基本程序设计(1)

1.  实验目的:

(1)进一步熟悉命令行和IDE两种方式下java程序开发的基本步骤;

(2)掌握Eclipse集成开发环境下导入Java源程序的过程;

(3)掌握Java语言构造基本程序的数据类型、变量、运算符、各类表达式、输入输出、流程控制的基本语法;

(4)掌握Math类、String类、StringBuilder类的用法。

2. 实验步骤与内容:

实验1 程序互评(10分)

        评分要求:结合评分程序的运行情况,给出评分程序成绩,满分5分,每个错误扣1分,扣至0分为止;

        评分者每发现一个正确的错误,本人实验1得分加1分,最高加5分。

实验2 : 编写包含以下代码片段的java应用程序,输出字符串类对象s3的值。

                         String s1=“Hello!”;

                         String s2=“World”;

                         String s3=s1+s2;

代码如下:

public class cld {

 public static void main(String[] args) {  

        // TODO Auto-generated method stub  

        String s1="Hello!";            //定义了一个String,名为s1,并将字符串Hello赋值给s1

        String s2="World";             //定义了一个String,名为s2,并将字符串World赋值给s2

        String s3=s1+s2;               //定义了一个String,名为上,并将s1+s2的值赋给s3

        System.out.println(s3);        //输出s3的值

 }

}

 

运行结果如下:

 

实验3 (5分)更改实验2中s1、s2、s3为StringBuilder类对象,观察程序运行结果并与实验2结果进行对比,理解String类对象与StringBuilder类对象的区别。

程序代码如下:

package message;

 
public class Message {
 
    public static void main(String[] args) {
        StringBuilder s1=new StringBuilder("Hello!");   //在字符串构建器StringBuilder中创建一个新的StringBuilder
        StringBuilder s2=new StringBuilder("world");
        StringBuilder s3=new StringBuilder();
        s3.append(s1);
        s3.append(s2);       //用StringBuilder将s1和s2拼接起来
        System.out.println(s3);
         
    }
}
截图如下:
运行结果如下:

2)String类对象与StringBuilder类对象的区别:

1.String

      1) 字符串是常量;

      2)String本身是不可改变的,它只能赋值一次,每次内容发生改变,都会生成一个新的String类对象,然后原有的对象引用新的对象。(它们的值在创建之后不能更改)

      3)String实现字符串加法,会在内存中创建很多字符串占用内存,占用内存越多,程序的效率就越低。

2.StringBuilder

      1)每次操作都是对自身对象进行操作,而不是产生新的对象,其所占空间会随着内容的增加而扩充;

      2)字符串缓冲区,可以提高字符串的效率,支持可变的字符串;

      3)StringBuilder实现字符串加法,始终是一个数组,占用内存少,所以效率高。

      4)如果需要用许多小段的字符串构建一个字符串,那么,首先,构建一个空的字符串构建器:

                StringBuilder builder = new StringBuilder();

             当每次需要添加一部分内容时,就调用 append 方法。

                builder.append(ch); // appends a single character

                builder.append(str); // appends a string

             在需要构建字符串时就调用 toString 方法,将可以得到一个 String 对象,其中包含了构建器中的字符序列。

                String completedString = builder.toString();

实验4 (5分)在命令行方式下调试运行下列程序,理解java应用程序命令行参数的用法。

 a)程序代码如下:

public class Message
public static void main(String[] args)
  {    
  if (args[0].equals(“-h”)) System.out.print(“Hello”);
    else if(args[0].equals(“-g”)) System.out.print(“goodbye,”);
  for(int i=1;i<args.length;i++)
    System.out.print(“  ”+args[i]);
  System.out.println(“!”);
  }
}

b) 其运行结果如下:

 

 

 

c) Java程序中main方法里存在“String[] args”参数: 

    1.  “String[] args”是命令行参数(其接收运行参数)

          Java程序运行的同时,可以通过两种方式将命令行参数赋给给“String[] args”:

一种是在Java命令行后面带上参数,另一种是通过编译器(本文将用eclipse进行演示)进行输入,之后虚拟机就直接把他们存放到“String[] args”数组中。

    2.  args是命令行参数,因为参数可以为多个,所以要用数组来存取我们输入的参数值。

 3. 针对以上程序,在命令行中调试运行:

        输入 Java Message -h (或 Java Message -g)回车,即将参数赋给 args 数组,运行程序。

    4.若在eclipse中进行,右键找到run as,选择Run Configurations,在文件Message中,找到它的 Arguments,在program arguments中输入参数 -h (-g) 后点击run即可。

实验5 java程序导入(5分)

         Eclipse环境下导入第3章示例程序InputTest.java步骤:

  1)新建 java project

 

 2)选择File->import->File ystem->Next,点击上方Browse选择导入源程序并选中,Browse选择源程序导入位置为新项目InputTest/src位置后,点击finish完成导入。

 

 3) 打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。

 4)右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序。理解代码中Scanner类对象用法,掌握java控制台输入方法。

 

 

A.Scanner类对象用法:

      1)使用Scanner的步骤:

    a: 必须导包 import java.util.Scanner; 可使用快捷键ctril+shift+o

    b:创建对象 Scanner sc = new Scanner(System.in);

    c:调用方法 sc.xxx( )

B.Scanner类的方法

    1)public int nextInt( ) : 读取一个int类型的值

    2)public String nextLine( ):读取一个String类型的值

    3)public boolean hasNextXxx():判断是否是某种类型的元素

C.Scanner类的方法总结:

    1)next( ): 只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)

    2)nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。

    3)nextline( ):只读取数值,剩下的“\n”还没有读取,并将光标放在本行中 。

    4)hasNextInt( ):判断是否是int 类型的元素,进而获取元素。

    5)next()方法并不能返回带空格、Tab键、回车符的字符串,而nextLine可以。

D.上述程序中的,Scanner in=new Scanner(System.in);

               System.in 是获得一个键盘输入流,监听键盘输入的数据,所以,Scanner in=new Scanner(System.in);就已经得到了获取键盘输入的实列。

    Scanner 是一个类,in 是一个实列或者说是对象,new 是一个创建对象的方法…Scanner类表现在获得控制台输入,相当于与声明一个人类(Scanner),这个人类是谁(in),后面新创建一个人类new Scanner(system.in),system.in 表示他有什么特征。换言之,就是,新创建一个输入的Scanner 对象,然后赋值给in。在使用时要关闭 流 ,否则会有警报。 

实验6 文件读写程序测试(10分)

       按照实验5操作步骤,导入WriteReadFileTest.java示例程序,运行程序并理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。

  1.导入WriteReadFileTest.java示例程序,运行程序结果如下:

 

实验7 (5分)

       按照实验5的操作步骤,导入第3章3-3——3-4示例程序,掌握两个程序循环控制结构的用途。

1)导入的3-3示例程序如下:

 

 

 2)导入3-4示例程序如下:

 

实验8 (5分)

       按照实验5的操作步骤,导入第3章3-5示例程序,理解抽奖概率计算算法。

1)导入3-5示例程序如下:

 

 

 

       3-5该程序使用了for循环,此程序用来计算抽奖中奖的概率,如果从n个数字中抽取K个数字,可用以下公式进行计算得到结果。

  compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)

其语句为:

 

3. 实验总结:(10分)

       通过本周的学习,我进一步熟悉了eclipse的使用,还有就是命令行和IDE两种方式下Java程序开发的基本步骤。在完成此次老师布置的作业的过程中,我又一次遇到了新的问题,比如在命令行的运行过程中,多次出现找不到文件,在数次的改正过程中,终于实现了命令行的运行。实验六和实验七以及实验八都是在实验五的基础上完成的,通过实验五的操作,对于文件的导入又有了进一步的熟悉。实验过程中,掌握了Java语言构造基本程序的数据类型,变量,运算符,各类表达式,输入输出,流程控制的基本语法,Java与C语言有着不同的地方,通过在课本上还有百度查阅,实验过程,理解掌握Math类、String类、StringBuilder类的用法。希望在以后的学习中,能更好的掌握Java程序设计语言。

            

 

 

 

 

 

 

 

 

 

Guess you like

Origin www.cnblogs.com/wing2438/p/11488019.html