20145120 《Java程序设计》第3周学习总结
教材学习内容总结
基本类型与类类型的概念
在java里使用数组和字符串
封装的概念
在java定义函数
重载的概念
static的概念
因为程序很多所以我截取部分
猜数字
public class Guess {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int number = (int) (Math.random() * 10);
int guess;
do {
System.out.print("猜数字(0 ~ 9):");
guess = console.nextInt();
} while(guess != number);
System.out.println("猜中了XD");
}
}
使用BigDecimal
import java.math.BigDecimal;
public class DecumalDemo {
public static void main(String[] args) {
BigDecimal operand1 = new BigDecimal("1.0");
BigDecimal operand2 = new BigDecimal("0.8");
BigDecimal result = operand1.subtract(operand2);
System.out.println(result);
BigDecimal op1 = new BigDecimal("0.1");
BigDecimal op2 = new BigDecimal("0.1");
BigDecimal op3 = new BigDecimal("0.1");
BigDecimal result2 = new BigDecimal("0.3");
if(op1.add(op2).add(op3).equals(result2)) {
System.out.println("等于 0.3");
}
else {
System.out.println("不等于 0.3");
}
}
}
基本类型打包
public class IntegerDemo {
public static void main(String[] args) {
int data1 = 10;
int data2 = 20;
Integer wrapper1 = new Integer(data1);
Integer wrapper2 = new Integer(data2);
System.out.println(data1 / 3);
System.out.println(wrapper1.doubleValue() / 3);
System.out.println(wrapper1.compareTo(wrapper2));
}
}
数组复制
class Clothes {
String color;
char size;
Clothes(String color, char size) {
this.color = color;
this.size = size;
}
}
public class Copy {
public static void main(String[] args) {
Clothes[] c1 = {new Clothes("red", 'L'), new Clothes("blue", 'M')};
Clothes[] c2 = new Clothes[c1.length];
for(int i = 0; i < c1.length; i++) {
c2[i] = c1[i];
}
c1[0].color = "yellow";
System.out.println(c2[0].color); //浅层复制的结果
Clothes[] c3 = {new Clothes("red", 'L'), new Clothes("blue", 'M')};
Clothes[] c4 = new Clothes[c3.length];
for(int i = 0; i < c3.length; i++) {
Clothes c = new Clothes(c3[i].color, c3[i].size);
c4[i] = c;
}
c3[0].color = "yellow";
System.out.println(c4[0].color); //深层复制的结果
}
}
1到100
public class OneTo100 {
public static void main(String[] args) {
StringBuilder oneTo100 = new StringBuilder();
for (int i = 1; i < 100; i++) {
oneTo100.append(i).append('+');
}
System.out.println(oneTo100.append(100).toString());
}
}
储蓄
import java.util.Scanner;
class CashCard {
private String number;
private int balance;
private int bonus;
CashCard(String number, int balance, int bonus) {
this.number = number;
this.balance = balance;
this.bonus = bonus;
}
void store(int money) {
if(money > 0) {
this.balance += money;
if(money >= 1000) {
this.bonus++;
}
}
else {
System.out.println("储值是负的?你是来捣乱的吗?");
}
}
void charge(int money) {
if(money > 0) {
if(money <= this.balance) {
this.balance -= money;
}
else {
System.out.println("钱不够啦!");
}
}
else {
System.out.println("扣负数?这不是让我储值吗?");
}
}
int exchange(int bonus) {
if(bonus > 0) {
this.bonus -= bonus;
}
return this.bonus;
}
int getBalance() {
return balance;
}
int getBonus() {
return bonus;
}
String getNumber() {
return number;
}
}
public class CardApp {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
CashCard card1 = new CashCard("A001", 500, 0);
card1.store(console.nextInt());
CashCard card2 = new CashCard("A002", 300, 0);
card2.store(console.nextInt());
CashCard card3 = new CashCard("A003", 1000, 1);
card3.store(console.nextInt());
System.out.printf("明细 (%s, %d, %d)%n",
card1.getNumber(), card1.getBalance(), card1.getBonus());
System.out.printf("明细 (%s, %d, %d)%n",
card2.getNumber(), card2.getBalance(), card2.getBonus());
System.out.printf("明细 (%s, %d, %d)%n",
card3.getNumber(), card3.getBalance(), card3.getBonus());
}
}
教材学习中的问题和解决过程
不太理解为什么要进行基本类型打包,基本类型打包有什么作用?
这周我将NetBaens换成了IDEA,
对1到100那个程序的运行结果截图的时候因为结果太长,很难截图,感觉应该是有结果自动换行功能的,找了一下,发现了应该是自动换行按钮的东西
还有显示代码行数的功能
等等
代码调试中的问题和解决过程
都是在抄书,所以没问题。
其他(感悟、思考等,可选)
感觉本周的学习难度明显上升了,有很多新概念出现,例如对象、参考等概念感觉理解起来就很麻烦,很难把这些概念固定在印象里。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 1000行 | 16篇 | 300小时 | |
第一周 | 20/1000 | 1/16 | 8/300 | |
第二周 | 71/1000 | 2/16 | 17/300 | |
第三周 | 320/1000 | 3/16 | 30/300 |