博文正文开头格式:(3分)

项目

内容

《面向对象程序设计(java)》

https://home.cnblogs.com/u/nwnu-daizh/

这个作业的要求在哪里

https://www.cnblogs.com/nwnu-daizh/p/11475377.html

作业学习目标

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

随笔博文正文内容包括:

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

1.标识符0标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。 标识符可用作:类名、对象名、变量名、方法名、数组名、文件名等。关键字关键字就是Java语言中已经被赋予特定意义的一些单词。常见有:class、public、try、catch、if、float、import、void等。关键字不做变量名。

2.注释

//:行注释。

/* */:段注释。

/** */:自动生成文档。

3.数据类型

整型:int,short,long byte。

int型   ,变量定义:int x;int height,age;对于int型变量,内存分配个4字节,占32位
           short型  ,变量定义:short h;short m,n;对于short型变量,内存分配2个字节,占16位
           long型  ,变量定义:long sum;long I,j.k;对于long型变量,内存分配8个字节,占64位
            byte型  ,变量定义:byte w;byte x,y,z;对于byte型变量,内存分配个1字节,占8位

浮点型:float,double。

char类型。

布尔类型:Boolean。

4.变量

变量名必须是一个以字母开头并由字母或数字构成的序列,变量中的所有字符都是有意义的,并且大小写敏感,声明一个变量之后,必须用赋值语句对变量显式初始化。在java中不区分变量的声明与定义。

常量:在java中利用final指示常量,常量名使用全大写,可以使用关键字static final设置一个类常量,类常量的定义位于main方法的外部。

5.运算符

数学函数与常量:数学函数包含在Math类中。幂函数、三角函数、指数函数及它的反函数等。

Java还提供了两个常量:Math.PI、Math.E

若不想在数学方法名和常量名前加前缀“Math.”,可在源文件顶部加上以下代码即可:import static java.long.Math.*;

数据类型之间的转换:

大多数的数值转换是遵循优先级的关系自动完成的。

转换原则如下:

如果两个操作数中有一个是double类型的,则另一个将会转换成double类型。

否则,如果两个操作数中有一个是float类型的,另一个将会转换成float类型。

否则,如果两个操作数中有一个是long类型的,另一个将会转换成long类型。

否则,两个操作数都将转换成int类型。

强制类型转换:

强制类型转换的语法:

(目标类型)变量名

在进行强制类型转换时,当心丢失数据。

运算符:

运算符的优先级与结合性:

1.  [ ]、() (方法调用)   从左到右

2 . !  ~  ++  --  +(一元)  –(一元)  ()(强制类型转换)  new    从右到左

3 .*   /    %  从左到右

4.+ - 从左到右

5.<<   >>(算术右移)   >>>(逻辑右移)    从左到右

6.<   <=   >   >=   instanceof    从左到右

7.==  !=    从左到右

8.&    从左到右

9.^    从左到右

10.|    从左到右

11.&&   从左到右

12.||   从左到右

13.?:   从右到左

14.=  +=  -=  *=  /=   %=   &=  |=   ^=  <<=  >>=  >>>=     从右到左

6.字符串:

Java字符串是Unicode字符的序列,它是组织字符的基本数据结构,用法类似于字符数组。有内置的字符串类型,在标准Java类库中提供了一个Java预定义类String。在Java中,字符串被当作对象来处理。

程序中需要用到的字符串可以分为两大类:创建之后不会再做修改和变动的不可变字符串String类;创建之后允许再做更改和变化的构建字符串StringBuilder类。

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

7.输入输出:

读取输入:通过控制台进行输入时,需要构造一个Scanner对象,并与“标准输入流”System.in关联。Scanner in = new Scanner(System.in);Scanner类定义在java.util包中,因此使用时需将相应的包加载进来。由于Scanner类输入是可见的,所以不适用于从控制台读取密码。

格式化输出:使用System.out.print(x)将数值x输出到控制台上,这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。

文件输入与输出:要想对文件进行读取,就需要一个用File对象构造一个Scanner对象;要想写入文件,就需要构造一个PrintWriter对象。

8.控制流程:

用{}把一些语句括起来就构成了一个语句。

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

if 、switch、for、while、do-while

9.大数值:

如果基本的整型和浮点型数据无法达到要求的精度,那么可以使用java.math包中的两个类,BigInteger和BigDecimal。这两个类可以操作任意长的数字。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。

10.数组:

数组是一种数据结构,它是有序数据的集合,数组中的每个元素的数据类型都是相同的。对元素的确定是由数组名和它的下标实现的,如a[0]代表数组a的第一个元素,a[1]代表数组a的第二个元素,依次类推。

数组的声明:

一维数组格式:

数组元素类型  数组名字[];

数组元素类型[]  数组名字;  //推荐使用

二维数组格式:

  数组元素类型  数组名字[][];

数组元素类型[][]  数组名字;//推荐使用

其中数组元素类型可以为Java中的任意类型,包括基本类型和复合类型。与C/C++不同,Java在数组声明时并不为数组分配内存。在Java中,数组是独立的类,有自身的方法。一个数组是一个对象,它由基本数据类型组成。

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

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

数字数组创建后,所有数组元素自动初始化为0;boolean数组创建后数组元素初始化为false;对象数组初始化为null.数组创建后不能再更改大小。

数组的初始化:

一维数组的初始化:在声明数组的同时对数组的元素进行初始化,系统会自动按照所给的初值的个数,算出数组的长度,并分配相应的空间。在Java中,可以初始化一个匿名数组。

多维数组的初始化:系统会自动根据初始值的大小计算出数组的大小。Java语言中,二维数组被看作数组的数组,把数组当作对象来处理。

数组的操作:

数组拷贝:Java允许把一个数组变量拷贝给另一个变量时,两个变量都指向相同的数组。如果只是想把一个数组中的值拷贝给另一个变量,就要使用Arrays类的copyOf方法:int[] copiedGirl = Arrays. copyOf(girl,girl.length);通过这个方法可以用来增加数组的大小:girl = Array. copyOf(girl, 2*girl.length);

数组排序:调用java.util.Arrays类中的 sort方法,可对一个数字数组进行排序。该方法采用优化快速排序算法。

多维数组:多维数组将使用多个下标访问数组元素,它适合用于表示表格或更复杂的排列形式。

多维数组的传统循环控制:

for(int i = 0; i < balances.length; i++)

for(int j = 0; j < balances[i].length; j++)

do something with balances[i][j]

多维数组的for each循环控制:

for(double[] row: balances)

for(double value: row)

do something with value

在程序设计时,如果需要存储二维表格数据,其中每个数据的类型是一样的,可采用二维数组。对二维数组的每个元素赋值一般是通过嵌套的二重循环来进行。

不规则数组:Java可以使用不规则数组,即数组的每一行有不同的长度。在创建不规则数组时,从最高维开始分别为每一维数组分配空间。

数组总结:数组使用之前要确定大小,可以在程序中根据需要动态生成数组(如用表达式计算出大小)。一旦生成数组,大小不可改变。Java不支持变长数组。数组的属性—length : 数组元素的个数。Java中的数组作为一种对象类型,可以作为方法的参数,方法调用时传的是指向数组的引用。

第二部分:实验部分

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

1.  实验目的:

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

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

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

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

3. 实验步骤与内容:

实验1 程序互评(10分)

实验2 (5分)

程序代码如下:

package JavaTest;

public class Test {

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

  

这个程序的运行结果如下图:

实验3 (5分)

程序代码如下:

package JavaTest;

public class Test {

public static void main(String[] args) {
StringBuilder s1=new StringBuilder(" Hello! ");
StringBuilder s2=s1;
System.out.println(s2.deleteCharAt(6));
}
}

  

这个程序的运行结果如下图:

实验4 (5分)

程序代码如下:

package JavaTest;

public class Test {

	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 java程序导入(5分)

程序代码如下:

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); // get first input
System.out.print("What is your name? ");
String name = in.nextLine(); // get second input
System.out.print("How old are you? ");
int age = in.nextInt(); // display output on console
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
}
}

  

这个程序的运行结果如下图:

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

程序代码如下:

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 (5分)

(1)程序代码如下:

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); System.out.print("How much money do you need to retire? ");
double goal = in.nextDouble(); System.out.print("How much money will you contribute every year? ");
double payment = in.nextDouble(); System.out.print("Interest rate in %: ");
double interestRate = in.nextDouble(); double balance = 0;
int years = 0; // update account balance while goal isn't reached
while (balance < goal)
{
// add this year's payment and interest
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
years++;
} System.out.println("You can retire in " + years + " years.");
}
}

  

这个程序运行结果如下图:

(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); System.out.print("How much money will you contribute every year? ");
double payment = in.nextDouble(); System.out.print("Interest rate in %: ");
double interestRate = in.nextDouble(); double balance = 0;
int year = 0; String input; // update account balance while user isn't ready to retire
do
{
// add this year's payment and interest
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"));
}
}

  

这个程序运行结果如下图:

实验8 (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(); System.out.print("What is the highest number you can draw? ");
int n = in.nextInt(); /*
* 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++)
lotteryOdds = lotteryOdds * (n - i + 1) / i; System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!");
}
}

 程序运行结果如下图:

4. 实验总结:(10分)

通过第三章的学习,了解到了许多java编程中的注释,数据类型:Java有8种数据类型,其中4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。,运算符,变量,输入输出,字符串:创建之后不会再做修改和变动的不可变字符串String类;-创建之后允许再做更改和变化的构建字符串StringBuilder类,大数值,数组。比较Java和c语言既有相似点又有许多不同,二者相互联系又彼此有区别,还有通过第三章的实验初步接触到了用java编写的程序,通过运行这些程序体会了学习java和c语言的不同,以前对c语言的学习情况不太好,现在学习java有些难度,但是慢慢适应并且努力克服,学好这门课程。

最新文章

  1. MapReduce 的架构
  2. iOS聊天下拉刷新聊天记录的实现
  3. 在OSX和Windows版本Docker上运行GUI程序
  4. HTTP协议中PUT/GET/POST/HEAD等介绍
  5. 算法系列7《CVN》
  6. debian7安装oracle11g
  7. 懂,你的App生,不懂,死!
  8. Java 找出四位数的全部吸血鬼数字 基础代码实例
  9. Servlet的学习(二)
  10. spring mvc接收JSON格式的参数
  11. MySQL数据转移至MSSQL详解
  12. Date( )方法 章节中,你可以查看更多关于日期转换为字符串的函数
  13. C语言博客作业—结构体
  14. 【翻译】Ext JS 5.0.1 中的新功能
  15. springboot use
  16. phonegap走起
  17. 关于 /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en.US_UTF-8) 问题
  18. net-snmp开发教程
  19. 标准I/O的缓冲
  20. MySQL:视图

热门文章

  1. tensorflow dataloader 相关内容
  2. Educational Codeforces Round 71 (Rated for Div. 2)
  3. Day15 - Python基础15 模块学习-selectors
  4. 201871010113-刘兴瑞《面向对象程序设计(java)》第十二周学习总结
  5. python(leetcode)498. 对角线遍历
  6. Linux学习笔记-第19天 结束了。突然感觉配置一个服务好简单的样子
  7. consolidate.js 一个Node.js 模板引擎的集合
  8. 【转载】修改Windows下键盘按键对应功能的一些方案
  9. concurrent.futures模块简单介绍(线程池,进程池)
  10. java基础第十九篇之Xml