项目

内容

这个作业属于哪个课程

<任课教师博客主页链接>     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磁盘分区、格式化、挂载

    新建分区的操作步骤,如下图: 1)RAID卡: 机器有没有RAID卡可以在开机时看有没有出现配置RAID什么的提示(亲测),系统运行时有没有,不知道! 服务器大多有这个新加硬盘后不修改raid,开即f ...

  2. 移动端自动化测试Appium环境搭建(part1-2-3)

    Appium移动端自动化测试相信大家都不陌生,appium的铁哥们是selenium,不管是selenium还是appium,都是调用webdriver来做自动化测试.今天关于appium的介绍我们不 ...

  3. Spring基于构造函数和设值函数的依赖注入

    基于构造函数的依赖注入 我们知道,bean标签中指定的类会进行初始化,这个初始化过程中自然会调用构造函数,那我们也可以利用这个构造函数完成依赖注入. 先创建一个类: public class Text ...

  4. Spring基于注解的配置1——@Required、@Autowired、@Qualifier示例及与传统注入方法的对比

    @Required注释 作用:用于属性的set方法,那么这个属性必须在xml文件的bean标签里面进行配置,否则就会抛出一个BeanInitializationException异常. 首先准备一个类 ...

  5. 2019-11-24:postgresql数据库安装,最后报错failed to load SQLModule 问题的解决方案

    安装环境:Windows 10 问题描述:Failed to load sql modules into the database cluster 原因在于 Postgresql 没有安装完全. 解决 ...

  6. k8s 获取 Pod ip 添加到环境变量

    0x00 事件 有一个需要将 Pod 自身的 ip 地址添加到环境变量的需求,可以在 yaml 文件的 env 中这样设置: env: - name: POD_OWN_IP_ADDRESS value ...

  7. Linux错误:Unable to locate package解决

    新买一个用于机器学习的实例,镜像系统Ubuntu.想安装一个上传.下载的包. 使用命令: sudo apt-get install lrzsz 结果一直报错: 解决方法: 使用命令: sudo apt ...

  8. Dockerfile构建私有镜像

    构建第一个镜像 镜像的定制实际上就是定制每一层所添加的配置,文件.我们可以把每一层修改,安装,构建,操作的命令都写入一个脚本,这个脚本就是Dockerfile.Dockerfile是一个文本文件,其内 ...

  9. 使用 cAdvisor 主机上的容器

    目录 前言 安装测试 安装 docker 安装docker-ce 启动 cAdvisor 容器 访问测试 prometheus 服务端配置 使用 promtool 检查配置文件 重新加载配置文件 前言 ...

  10. Logos讲解--逆向开发

    前言 Logos是CydiaSubstruct框架中提供的一组宏定义.利于开发者使用宏进行Hook操作,其语法简单,功能是非常强大且稳定. 详细内容logos语法为http://iphonedevwi ...