201871010104-陈园园 《面向对象程序设计(java)》第二周学习总结

项目 内容
这个作业属于哪个课程 ttps://www.cnblogs.com/nwnu-daizh/
这个作业要求在哪里 https://www.cnblogs.com/lily-2018/p/11441372.html
作业学习目标
  1. 适应老师教学方式,能按照自主学习要求完成本周理论知识学习;
  2. 掌握Java Application程序结构;
  3. 掌握Java语言的数据类型与变量;
  4. 学会使用Java运算符构造各类表达式;
  5. 掌握Java Application输入输出技术;
  6. 掌握Java流程控制技术(分支、循环);(重点)
  7. 掌握Math类、String类的用法。(难点)

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

1、标识符

Java中标识符是由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。标识符可用作类名、对象名、变量名、方法名、数组名、文件名。

2、关键字

关键字就是java中语言已经被赋予特定意义的一些单词。常见的有:class、public、try、catch、import、if、float、void等。关键字不做变量名。

3、注释

java中注释有三种方式:

1)//   注释内容由//一直到此行结束。

2)/*和*/   定义一个注释块

3)/**开始,*/结束    这种注释方法可以用来自动产生文档。

4、数据类型

整数类型(int、short、long、byte)

浮点类型(float、double)

字符类型(char)

布尔类型(boolean)

java中没有unsigned类型。在java中,布尔值和整数不能相互转换。

5、字符集:java采用unicode字符编码集,该编码集16位,含有65536个字符。Unicode(统一码,万国码)是一个编码规范,为解决传统字符编码方案局限产生。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

6、转义字符

7、变量

在java中,每一个变量属于一种类型。在声明变量时,变量所属的类型位于变量名之前。一行可以声明多个变量,逐一声明每一个变量可以提高程序的可读性。

一个变量声明后,必须通过赋值语句对它进行明确的初始化。在java中,可以在代码的任何位置进行变量的声明。变量的声明尽可能地靠近变量第一次使用的地方,这是一种良好的程序编写风格。

在java中,不能在同一作用域内声明两个同名的变量。

8、常量

在java中,使用关键字final来表示常量。习惯上常量名都用大写。关键字final表示只能对变量赋一次值,其值一旦设定,便不能改。使用关键字static final声明一个类常量。

9、各种运算符

算是运算符、自增运算符域自减运算符、关系运算符、逻辑运算符、位运算符、运算符的优先级与结合性。

java提供了两个特别的运算符,new(用来创建对象的运算符)、insteadof(返回一个布尔值来指出某个对象是否是一个特定的类或者是它的子类的一个实例)。

10、类、域、方法和全局变量、函数

1)类是C中没有的,Java中类定义如下:

[修饰符] class 类名[extends 父类名][implements 接口名]

其中修饰符可以为以下一个或多个访问修饰符:

abstract:抽象类。

final:最终类。

public:公共类。

2)域(成员变量)和全局变量类比:

Java中域的定义如下:

[修饰符] 类型 成员变量名;

修饰符可选以下一个或多个关键字:

public:公共成员。

protected:本类或同一个包的其他类以及其它包该类的子类可访问。

private:私有成员。

final:常量,确定后不能改变。

static:静态变量。

transient:临时变量。

volatile:备份变量。

各类型成员变量默认初始化为:

整型变量:0

浮点型变量:0.0

布尔型变量:false

字符型变量:空格

类变量:null

C中全局变量定义同一般变量:

[存储类别] 数据类型 变量表列;

其中存储类别可选:

auto:自动变量,当不申明存储类别时隐式默认该值。

static:静态变量。

register:寄存器变量。

extern:外部变量。

3)方法和函数类比:

Java中方法的定义如下:

[修饰符] 返回类型 方法名([参数表列])

修饰符可选以下一个或多个:

public:公共方法。

protected:本类或同一个包的其他类以及其它包该类的子类可访问。

private:私有方法。

abstract:抽象方法,只有方法头没有方法体。

static:静态方法。

存储类别可选:

extern:外部函数。

static:静态函数。

11、数学函数与常量

数学函数包含在Math类中(幂函数、三角函数。指数函数以及它的反函数)等。

12、数组

Java中数组定义有两种方式:

数据类型数组名[];或 数据类型 []数组名;

定义和初始化可同时进行,如:int []a = {0,1,2,3,4,5,6,7,8,9};

注意Java中数组如果在定义时没有进行初始化,在进行初始化的时候需要先分配内存,即:

数组名 = new 数据类型[常量表达式];

也可在定义同时进行内存分配:

数据类型数组名[] = new 数据类型[常量表达式];

C和Java都不支持变长数组,引用的时候都是 数组名[下标]。区别是:Java的下标范围为0~数组长度-1,不在该范围会抛出数组下标越界异常,而C有效范围也是0~数组长度-1,但下标超出此界不会报错。

13、类、域、方法和全局变量、函数

1)类是C中没有的,Java中类定义如下:

[修饰符] class 类名[extends 父类名][implements 接口名]

其中修饰符可以为以下一个或多个访问修饰符:

abstract:抽象类。

final:最终类。

public:公共类。

2)域(成员变量)和全局变量类比:

Java中域的定义如下:

[修饰符] 类型 成员变量名;

修饰符可选以下一个或多个关键字:

public:公共成员。

protected:本类或同一个包的其他类以及其它包该类的子类可访问。

private:私有成员。

final:常量,确定后不能改变。

static:静态变量。

transient:临时变量。

volatile:备份变量。

各类型成员变量默认初始化为:

整型变量:0

浮点型变量:0.0

布尔型变量:false

字符型变量:空格

类变量:null

C中全局变量定义同一般变量:

[存储类别] 数据类型 变量表列;

其中存储类别可选:

auto:自动变量,当不申明存储类别时隐式默认该值。

static:静态变量。

register:寄存器变量。

extern:外部变量。

第二部分:实验部分

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

1.  实验目的:

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

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

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

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

3. 实验步骤与内容:

实验1 java风格九九乘法表程序互评。

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

String  s1="Hello!";

String s2="World";

String s3=s1+s2;

代码如下:

package cyy;
public class cl {
public static void main(String[] args) {
String s1="Hello!";
String s2="World";
String s3=s1+s2;
s3=s2.concat(s1);
System.out.println(s3);
} }

运结结果如下:

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

代码如下:

package cyy;
public class cl {
public static void main(String[] args) {
StringBuilder s1=new StringBuilder("Hello!");
StringBuilder s2=new StringBuilder("World");
StringBuilder builder=new StringBuilder();
builder.append(s1);
builder.append(s2);
System.out.println(builder);
}
}

 

运行结果如下:

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

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(“!”);
}
}

运行结果如下:

实验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控制台输入方法。

实验6 文件读写程序测试

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

2)myfile.txt内容如下

实验7

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

3-3实例

代码如下:

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.");
}
}

  运行结果如下:

3-4实例

代码如下:

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:按照实验5的操作步骤,导入第3章3-5示例程序,理解抽奖概率计算算法。

代码如下:

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!");
}
}

  

运行结果如下:

四.实验总结

本周的实验主要是在c语言的基础之上,对java作了学习,通过将两者作对比将java的基础知识加以巩固与学习,此外,还通过实例中的代码慢慢地走进java,慢慢理解java中的各种数学算法,虽然看着不太懂。但是我相信以后可能会慢慢得到升华,努力为以后的学习打下一个基础。

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

  1. 20165223《JAVA程序设计》第二周学习总结

    20165223 <JAVA程序设计>第二周学习总结 教材学习内容总结 第二章要点 标识符与关键字 基本数据类型 类型转换运算 输入输出数据 数组 第三章要点 运算符与表达式 语句概述 i ...

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

    20175334 <Java程序设计>第二周学习总结 教材学习内容总结 了解Java编程风格 认识Java基本数据类型与数组 掌握Java运算符.表达式和语句 教材学习中的问题和解决过程 ...

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

    20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...

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

    # 20175126 2016-2017-2 <Java程序设计>第二周学习总结 ## LINUX系统安装好输入法后如何使用? - 相信很多同学在刚接触虚拟机LINUX系统时,会因无法输入 ...

  5. 20155312 2006-2007-2 《Java程序设计》第二周学习总结

    20155312 2006-2007-2 <Java程序设计>第二周学习总结 课堂内容总结 git:版本控制 生活中的容灾备份 归纳思维.实验思维.计算思维 计算机:实现自动化 学会使用快 ...

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

    20155334 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 java中的基本类型 整数:有short.int.long三种 字节:byte 字符:cha ...

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

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

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

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

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

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

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

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

随机推荐

  1. monkey-api-encrypt 1.1.2版本发布啦

    时隔10多天,monkey-api-encrypt发布了第二个版本,还是要感谢一些正在使用的朋友们,提出了一些问题. GitHub主页:https://github.com/yinjihuan/mon ...

  2. multiply two numbers using + opertor

    public class Solution { public static void main(String[] args) { , y = ; ; ; i <= y; i++) res = i ...

  3. Java开发:字符串切割split函数——切割符转码注意事项

    一.问题如下: 1.先对一个已有字符串进行操作,使用     ;     进行分割: //示例字符串 String string="sr1.db1.tb1.df1;sr2.db2.tb2.d ...

  4. 花一天时间踩了node npm的一个坑

    在一个后端眼里nodejs这工具真的难用,最近为了用elementui,然后去硬着头皮学vue,学着学着,发现还要去用node,webpack.真想掐死前端那一群人啊.... 好了,进入正题.话说我装 ...

  5. 记一次难忘的排错debug经历(找了5天左右)(涉及内存覆盖)

    strcpy和memcpy都没有处理内存覆盖问题. 函数描述 The memcpy function copies count bytes of src to dest. If the source ...

  6. Using MS Soap toolkit to generate web services .md

    Different SOAP encoding styles - RPC, RPC-literal, and document-literal SOAP Remote Procedure Call(R ...

  7. PyQt5笔记之菜单栏

    目录 菜单栏 创建单层菜单 创建多层菜单 右键打开菜单 官方菜单实例 菜单常用方法 菜单栏 创建单层菜单 import sys from PyQt5.QtWidgets import QApplica ...

  8. ant-design自定义FormItem--上传文件组件

    自定义上传组件,只需要在内部的值变化之后调用props中的onChange方法就可以托管在From组件中, 此外为了保证,初始化值发生变化后组件也发生变化,需要检测initialValue 变化,这是 ...

  9. 【More Effective C++ 条款4】非必要不提供default constructor

    1)default constructor:在没有任何外来信息的情况下将对象初始化 2)但是有些对象如果没有外来信息,就没有办法完成初始化动作,那么这些对象,就没有必要提供default constr ...

  10. freemarker中8个常用的指令

    这里列举出Freemarker模板文件中8个常用的指令. 1. assign assign指令用于创建或替换一个顶层变量,assign指令的用法有多种,包括创建或替换一个顶层变量,创建或替换多个变量等 ...