博文正文开头格式:(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有些难度,但是慢慢适应并且努力克服,学好这门课程。

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

  1. 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结

    2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. requests---requests上传图片

    我们在做接口测试的时候肯定会遇到一些上传图片,然后进行校验,今天我们一起学习通过requests上传图片,查看是否上传成功 抓取上传接口 这里我以百度为例子进行操作,为啥要用百度呢,主要上传文件比较简 ...

  2. 配置环境变量后不生效,显示缓存的旧jdk版本,解决方案

    本人一直用jdk1.8版本; 今天安装了jdk11版本, 并配置好了jdk11的环境变量JAVA_HOME    :   jdk安装路径bin目录的上级目录PATH    :  %JAVA_HOME% ...

  3. Young and Beautiful 新红楼剪辑(by up)

    up剪辑的新红楼视频,配上Young and Beautiful 这首英文歌,很优美^_^

  4. Day9 - Python基础9 socket基础、粘包

    本节内容: 1.socket的介绍 2.基于tcp的socket 3.基于tcp的问题分析 4.基于udp的socket 5.基于udp的问题分析 6.基于udp的ntp服务 7.基于tcp的远程执行 ...

  5. pytorch 建立模型的几种方法

    利用pytorch来构建网络模型,常用的有如下三种方式 前向传播网络具有如下结构: 卷积层-->Relu层-->池化层-->全连接层-->Relu层 对各Conv2d和Line ...

  6. 发送post请求的接口

    一.简介 所有系统或者软件.网站都是从登录开始,所以首先介绍的第一个post请求是登录. 二.help函数 学习一个新的模块捷径,直接用help()函数查看相关注释和案例内容 for example: ...

  7. python爬虫初认识

    一.爬虫是什么? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛, 沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程 ...

  8. cd 到目录自动ls

    $vim ~/.bashrc 文件末尾加入: cdls() { cd "${1}" ls; } alias cd='cdls' $source ~/.bashrc

  9. go get 获取被墙依赖包解决方法

    前言: 随着 go1.11 的发布,go 官方引入了 go module 来解决依赖管理问题,go module 被集成到原生的 go cmd 中,但是如果你的代码库在$GOPATH中,go1.11 ...

  10. Mybatis关联查询之一

    MyBatis的关联查询之一对多,多对一 在关系型数据库中,我们经常要处理一对多,多对一和多对多的关系. 一对多,多对一 一.entity 实体类 public class SmbmsRole { p ...