项目

内容

这个作业属于哪个课程

<任课教师博客主页链接>     https://www.cnblogs.com/nwnu-daizh/

这个作业的要求在哪里

<作业链接地址>     https://www.cnblogs.com/nwnu-daizh/p/11435127.html

作业学习目标

  1. 适应老师教学方式,能按照自主学习要求完成本周理论知识学习;
  2. 掌握Java Application程序结构;
  3. 掌握Java语言的数据类型与变量;
  4. 学会使用Java运算符构造各类表达式;
  5. 掌握Java Application输入输出技术;
  6. 掌握Java流程控制技术(分支、循环);(重点)
  7. 掌握Math类、String类的用法。(难点)

  第一部分:结合Java和C基础语法的异同比较,总结本周理论知识

    1、标识符:由字母,下划线,美元符号和数字组成,且第一个符号不能是数字。

      2、标识符可以用作类名,变量名,方法名,数组名以及文件名等。

    3、关键字:Java中被赋予特殊意义的单词。   注意:关键字不做变量名。

    4,注释:在Java语言中,注释的方法有三种。

      (1)//  (2)/*    */ , 在Java中,这种注释不能嵌套。      (3)/**    */。

      (2)在Java语言中,源代码的文件名必须与公共类的名字相同,并用   .java    作为扩展名。而且区分大小写。

      (3)System.out.println();   和   System.out.print(); 其中第一个在输出之后换行,而第二个在输出之后不换行。

    5、数据类型:(Java是一种强类型语言,所以它的每一个变量都要声明一种类型)。

      (1)8中基本的类型:

          ————整数类型:(int:内存占4个字节;    short:内存占2个字节;    long:内存占8个字节;  byte:内存占1个字节)

          ————浮点类型:(float:占四个字节;  double占8个字节)

          ————字符类型:(char:字面量值要用单引号括起来)

          ————布尔类型:(Boolean:其值为:true   或者   false。 布尔值和整数不能相互转换)

      注意:在Java语言中,没有任何无符号型(unsigned)形式的int, short, long,和byte类型。

      转义字符:\b(退格);    \t(制表);    \n(换行);     \r(回车);   \"(双引号);    \'(单引号);    \\(反斜杠)。

    6、变量:在Java中每一种变量属于一种类型。在声明变量时,变量所属的类型在变量的前面。变量名必须是以字母开头并由字母或数字组成的序列。变量名中,所有的字母都是有意义的,并且大小写敏感。

                    不能使用Java中的关键字(保留字)来作为变量名。在一行可以声明一个或多个变量,但是逐一声明每一个变量可以提高程序的可读性。

      变量的初始化:

        一个变量声明后,必须通过赋值语句对它进行明确的初始化。(永远不要使用未初始化的变量)。在Java语言中,可以在代码的任何位置进行变量的声明,但是变量的声明尽可能地在靠近变量第一次使                               用的地方。(在同一作用域内不能声明两个同名的变量)。

    7、常量:在Java中,使用关键字   final来指示常量。关键字final表示这个常量只能被赋值一次,一旦被赋值就不能再改了。在Java中,经常希望某个常量可以在一个类中的多种方法中使用,通常称这些常量为类                                  常量。可以使用关键字    Static  final  声明一个类常量。

    8、运算符:

      (1)各种条件运算符:包括算术运算符、自增运算符与自减运算符、关系运算符、逻辑运算符和位运算符。

      (2)Java提供的特殊运算符:New运算符和Instenceof,前者用来创建对象的运算符,或者用来返回一个布尔值来指出某个对象是否是一个特定类或者是它的子类的一个实例。

      (3)运算符的优先级与结合性:见书44~45.

      (4)数学函数与常量:数学函数包含在Math类中,————幂函数;————三角函数;————指数函数及它的反函数等。

      (5)Java还提供了两种常量:——Math.PI, Math.E.

    9、类型转换:       char

             ↓                

       byte  →  short  →     int  →  long

                           ↓          ↓

                       float  → double

      隐式类型转换:

      (1)如果两个操作数中有一个是double类型的,则另一个会转换成double类型;

      (2)如果两个操作数中有一个是float类型的,则另一个会转换成float类型;

      (3)如果两个操作数中有一个是long类型的,则另一个会转换成long类型;

      (4)两个数都将转换成int类型。

      强制类型转换:

      强制类型转换的语法格式是在圆括号中给出想要转换的类型,后面紧跟带转换的变量名。

      (目标类型 )        变量名

      强制类型转换只是从那个变量计算出一个新的类型的值,并没有改变那个变量,无论是值还是类型都不改变。

     10、字符串

        (1)Java中字符串是Unicode字符的序列,它是组织字符的基本数据结构。

        (2)有内置的字符串类型,在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处理。

        (3)程序中需要用到的字符串有两类:创建之后不会再做修改和变动的不可变字符串String类;

                          创建之后允许再做更改和变化的构建字符串StringBuilder类。

        (4)字符串常量:用双引号定义字符串常量;

                 Java会自动为字符串常量生成一个String类的对象,所以可以直接初始化String类的对象。

          (5)String类:

    String类的构造方法:创建String类的一个对象,并对它初始化,需要调用类String的构造方法。

    A:String(): 创建一个空串;

    B:String(String  Value);

    C:String  (char  value []);

    D:String  (char[],  int   startIndex);

    E:String  (byte[],   byte   hibyte);

    F:String  (byte[],  byte  hibyte,  int   startIndex,  int numChars);

    String类的基本方法:   获得字符串的字串;

              串连接(+): 注意,当获取一个字符串和一个非字符串时,后者将会转换成字符串;

              获取字符串的长度:使用String类中的length()方法可以获取一个字符串的长度;

              检测字符串是否相等:可以使用equals方法检测两个字符串是否相等;

                        一定不能使用   “=”   运算符两个字符串是否相等,这个运算符只能确定两个字符串是否放置在同一个位置上。

              字符串检索:

              字符串数字与数值的转化:Java.lang包中的Interger类,Long类,Float类, Double类分别提供了相应的方法来进行字符串与数值间的转换。

              获得对象的字符串表示:所有的类都默认为Java.lang包中Object类的子类或间接子类。Object类中有一种方法获得对象的字符串表示:   toString()。

    String类的API及文档:String类中包含各类字符串处理的50多种方法,使用JDK在线API 文档可以查阅所有标准类及其方法,打开浏览器,指向JDK安装目录下的docs/spi/index.html。

         (6)StringBuilder类字符串;

      StringBuilder类的说明:需多个小段字符串连接创建一个字符串时,每次连接字符串时,都会构建一个新的String类对象。

               eg:

                StringBuilder  builder = new  StringBuilder();     创建一个字符串对象;

                builder.append(ch);                                                   appends  a   singer   character;

                -----Builder.append(str);                                              appends    a    String

      StringBuilder 类的API:

        (1)分配/获取字符串的长度;

        (2)分配/获取字符串的容量;

        (3)字符串的检索和字串;

        (4)字符串的修改;

        (5)字符串类型转换:   toString();

    11、输入输出:

         (1)读取输入:通过控制台进行输入时,需要构建一个Scanner对象,并与“标准输入流”System.in关联。

                 Scanner  in= new   Scanner(System.in);

                Scanner类定义在java.util包中,使用时将包加载进来;

                Scanner类输入时可见的;

             (2)格式化输出:使用System.out.println();将数值输出到控制台。

    12、控制流程:

           Java有5中语句:

          (1)方法调用语句:System.out.println("Hello!World");

          (2)表达式语句:

             (3)复合语句:用    {}    把一些语句括起来就构成了一个语句。

          (4)控制语句:程序控制流程由控制语句给出;if, switch, for, while,do_while.

          (5)package语句和import语句。

   第二部分:实验部分

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

1.  实验目的:

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

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

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

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

3. 实验步骤与内容:

实验1 程序互评

打印九九乘法表代码如下:                                    

(1)

package dier;

public class shiyanerer {

	public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i=1; i <= 9; i++)
{
for(int j=1; j<=i; j++)
{
System.out.print(i + "*" + j + "=" + (i*j) + "\t");
}
System.out.println();
}
} }

  运行结果如下:

方法二代码如下:

package dier;

public class shiyanerer {

	public static void main(String[] args) {
// TODO Auto-generated method stub
for (int i=1; i <= 9; i++)
{
for(int j=1; j<=9; j++)
{
System.out.print(i + "*" + j + "=" + (i*j) + "\t");
}
System.out.println();
}
} }

  运行结果如下:

实验2

程序代码如下:

package dier;

public class shiyaner {

	public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="Hello!"; //定义一个String类,s1 ,将字符串“Hello!”赋值给s1;
String s2="World"; //定义一个String类,s2 ,将字符串“World”赋值给s1;
String s3 = s1 + s2; //定义一个String类, s3 ,将s1+s2赋值给s3;
System.out.println(s3); //输出s3的值。
} }

  

  运行结果如下:

    

实验3

程序代码如下:

package dier;

public class shiyansan {

	public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder s1= new StringBuilder("Hello!"); //在字符串构建器StringBuilder中创建一个新的StringBuilder s1;
StringBuilder s2= new StringBuilder("World"); //在字符串构建器StringBuilder中创建一个新的StringBuilde s2;
StringBuilder s3= new StringBuilder();
s3.append(s1);
s3.append(s2); //将s1和s2连接起来赋值给s3;
System.out.println(s3); //输出s3;
} }

  

  运行结果如下:

    

实验4

程序代码如下:

package dier;

public class shiyansi {

	public static void main(String[] args) {
// TODO Auto-generated method stub
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("!"); }
}

  运行结果如下:

    

实验5 java程序导入

程序代码如下:

import java.util.*;

/**
* This program demonstrates console input.
* @version 1.10 2004-02-10
* @author Cay Horstmann
*/
public class InputTest
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in); //通过控制台进行输入时,需要构建一个Scanner对象,并与“标准输入流”System.in关联。 // get first input
System.out.print("What is your name? ");//输入名字
String name = in.nextLine(); //定义一个String类,用来显示计算机读入的字符串“What is your name?”的内容; // get second input
System.out.print("How old are you? "); //输入年龄
int age = in.nextInt(); //定义一个整形,用来显示计算机读入的字符串“How old are you?”的内容; // display output on console
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
//最后显示Hello,加上你输入的名字,再加上.next year, you'll be 在加上输入年龄加一。
}
}

  

  

运行结果如下:

实验6 文件读写程序测试

程序代码如下: 

       

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Arrays; public class WriteReadFileTest { /**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException { //写入文件演示
PrintWriter out = new PrintWriter("myfile.txt");
out.println("姓名 高数 Java 数据结构 平均成绩 总成绩");
out.println("张三 20 30 40 0 0");
out.println("李四 50 60 70 0 0");
out.close();//切记,输出完毕,需要close //读入文件演示
Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in
int number = 1;//行号
while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出
String line = in.nextLine();//读出myfile.txt的下一行
System.out.println("第"+(number++)+"行的内容" +"="+line); Scanner linescanner = new Scanner(line);//对每一行的内容建立一个扫描器
linescanner.useDelimiter(" ");//使用空格作为分隔符
String name = linescanner.next();
String math = linescanner.next();
String java = linescanner.next();
String ds = linescanner.next();
String avg = linescanner.next();
String total = linescanner.next();
System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);
}
in.close();//读入完毕,最后需要对其进行close。 }
}

  

  

运行结果如下:

实验7 :

(1)Retirement 程序代码如下:

import java.util.*;

/**
* This program demonstrates a <code>while</code> loop.
* @version 1.20 2004-02-10
* @author Cay Horstmann
*/
public class Retirement
{
public static void main(String[] args)
{
// read inputs
Scanner in = new Scanner(System.in); //通过控制台进行输入时,需要构建一个Scanner对象,并与“标准输入流”System.in关联。 System.out.print("How much money do you need to retire? ");
double goal = in.nextDouble();//输入"How much money do you need to retire? "的内容; System.out.print("How much money will you contribute every year? ");
double payment = in.nextDouble();//输入"How much money will you contribute every year? "的内容; System.out.print("Interest rate in %: ");
double interestRate = in.nextDouble();//输入"Interest rate in %: "的内容; double balance = 0; //定义双精度型 balance,并进行初始化;
int years = 0; //定义整型years,并进行初始化; // update account balance while goal isn't reached
while (balance < goal) //while循环
{
// add this year's payment and interest
balance += payment; //balance=balance + payment;
double interest = balance * interestRate / 100;
balance += interest;
years++;
} System.out.println("You can retire in " + years + " years.");
}
}

  

  

运行结果如下:

(2)Retirement(2)程序代码如下:

       

import java.util.*;

/**
* This program demonstrates a <code>do/while</code> loop.
* @version 1.20 2004-02-10
* @author Cay Horstmann
*/
public class Retirement2
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in); //通过控制台进行输入时,需要构建一个Scanner对象,并与“标准输入流”System.in关联。 System.out.print("How much money will you contribute every year? ");
double payment = in.nextDouble(); //输入"How much money will you contribute every year? "的内容; System.out.print("Interest rate in %: ");
double interestRate = in.nextDouble(); //输入"Interest rate in %: "的内容; double balance = 0;
int year = 0; String input; // update account balance while user isn't ready to retire
do //do-while循环
{
// add this year's payment and interest
balance += payment; //balance=balance+payment;
double interest = balance * interestRate / 100;
balance += interest; year++; // print current balance
System.out.printf("After year %d, your balance is %,.2f%n", year, balance); // ask if ready to retire and get input
System.out.print("Ready to retire? (Y/N) ");
input = in.next();
}
while (input.equals("N")); //循环满足的条件,当输入“Y”的时候结束循环语句;
}
}

  

  

运行结果如下:

实验8

程序代码如下:

    

import java.util.*;

/**
* This program demonstrates a <code>for</code> loop.
* @version 1.20 2004-02-10
* @author Cay Horstmann
*/
public class LotteryOdds
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in); System.out.print("How many numbers do you need to draw? ");
int k = in.nextInt(); //输入"How many numbers do you need to draw? "的内容; System.out.print("What is the highest number you can draw? ");
int n = in.nextInt(); //输入"What is the highest number you can draw? "的内容; /*
* compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)
*/ int lotteryOdds = 1;
for (int i = 1; i <= k; i++) //for循环;
lotteryOdds = lotteryOdds * (n - i + 1) / i; System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!");
}
}

  

  运行结果如下:

4. 实验总结:

  通过实验课老师和助教的指导,自己动手操作,先是跟着老师说的做,然后再改一下,试着摸索其他函数的作用,刚开始感觉更不上老师的节奏,但是在助教的帮助下,慢慢的适应。实验课的学习就是把上课老师说的理论知识实践化,实验和理论结合运用,但是这方面我还很欠缺,理论掌握不透彻,自然实验就比较难做了。所以首先得了解理论知识,然后更好的进行实验课得操作。

201871010119-帖佼佼《面向对象程序设计(java)》第二周学习总结的更多相关文章

  1. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  2. 20172321 2017-2018-2 《Java程序设计》第二周学习总结

    20172321 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 第一章要点: 要点1 字符串:print和println用法的区别,字符串的拼接,java中 ...

  3. 20145326《Java程序设计》第二周学习总结

    20145326<Java程序设计>第二周学习总结 教材学习内容总结 本周学习教材第三章,本章主要讲述了java语言中的一些基础语法,java是个支持面向对象的程序语言,但在正式进入面向对 ...

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

  7. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

  8. 201521123038 《Java程序设计》 第二周学习总结

    201521123038 <Java程序设计> 第二周学习总结 1.本章学习总结 学会在Java程序中使用函数,使程序层次更清晰 使用StringBuilder编写代码,减少内存空间的占用 ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  10. 20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第二周学习总结 教材学习内容总结 -第二章基本数据类型与数组要点: -标识符与关键字:标识符的第一个字符不能是数字字符: ...

随机推荐

  1. Linux安装telnet C/S 【白话文】

    1.安装telnet 和telnet-server yum -y install telnet yum -y install telnet-server 注意:在此安装过程中,会依赖解决xinetd的 ...

  2. 官宣!Amazon EMR正式支持Apache Hudi

    ​Apache Hudi是一个开源的数据管理框架,其通过提供记录级别的insert, update, upsert和delete能力来简化增量数据处理和数据管道开发.Upsert指的是将记录插入到现有 ...

  3. 用图解&&实例讲解php是如何实现websocket实时消息推送的

    WebSocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 以前的推送技术使用 Ajax 轮询,浏览器需要不断地向服务器发送http请求来获取最新的数据,浪费很多的带 ...

  4. 作业要求20191107-6 beta week 2/2 Scrum立会报告+燃尽图 05

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9958 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...

  5. Selenium+Java(四)Selenium Xpath元素定位

    前言 关于Selenium元素定位,这是最后一篇博客. Xpath定位可以实现的功能 Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的 ...

  6. Head First设计模式——模板方法模式

    前言:本篇我们讲解模板方法模式,我们以咖啡和茶的冲泡来学习模板方法.关于咖啡另一个设计模式例子也以咖啡来讲解,可以看下:Head First设计模式——装饰者模式 废话不多说,开始进入模板方法模式. ...

  7. PostgreSQL的使用向导

    目录 数据库 创建数据库 进入数据库 查看版本 查看当前时间日期 简单的select 获得帮助命令 退出psql客户端 创建表 weather和cities表的创建 删除表 插入数据 数据库导出成cs ...

  8. 英语口语考试资料Friendships

    Friendships Remember Friendships can be complicated. When you want to get to know someone, it helps ...

  9. 使用Git上传文件到github

    第一次利用git连接github时往往都不会勾选Initialize this repository with a README,这样的的确确是简单了,但是如果我们需要勾选,勾选了之后应该怎么办呢?1 ...

  10. django初始化

    Django 版本 安装 pip安装 pip install django 安装最新版本的 pip install django==1.11.11 安装指定版本的 验证安装 直接去代码中调用djang ...