- 这周做了什么
学习了JAVA的基本内容
通过实例认识了JAVA的面向对象编程及一些不同于C++面向对象的知识。
时钟类
package Clock;
public class Clock {
private Display hour=new Display(24);
private Display minute=new Display(60);
public void start(){
minute.increase();
if(minute.getValue()==0)
hour.increase();
System.out.printf("%02d:%02d\n",hour.getValue(),minute.getValue());
}
public static void main(String [] args)
{
Clock clock=new Clock();
for(;;)
clock.start();
}
}
售货机类
package vendingmachine;
public class VendingMachine {
int price=80;
int balance;
int total;
void showPrompt()
{
System.out.println("Welcome");
}
void InsertMoney(int amount)
{
balance=balance+amount;
}
void showBalance()
{
System.out.println(balance);
}
void getFood()
{
if(balance>price) {
System.out.println("Here you are");
balance-=price;
total=total+price;
}
}
public static void main(String []args){
VendingMachine VM=new VendingMachine();
VM.showPrompt();
VM.showBalance();
VM.InsertMoney(100);
VM.showBalance();
VM.getFood();
VM.showBalance();
}
}
硬币辨别类
package coins;
import java.util.HashMap;
import java.util.Scanner;
public class Coins {
private HashMap<Integer,String> coinnames=new HashMap<Integer,String>();
public Coins(){
coinnames.put(1,"penny");
coinnames.put(5,"nickle");
coinnames.put(10,"dimn");
coinnames.put(25,"quater");
coinnames.put(50,"half-dollar");
System.out.println(coinnames.keySet().size());
System.out.println(coinnames);
for(Integer k: coinnames.keySet())
{
String s=coinnames.get(k);
System.out.println(s);
}
}
public String getName(int i) {
if(coinnames.containsKey(i))
return coinnames.get(i);
else
return "NOT FOUND";
}
public static void main(String []args){
Scanner in=new Scanner(System.in);
int amount=in.nextInt();
Coins coin=new Coins();
System.out.println(coin.getName(amount));
}
}
etc.
与C++不同的是,JAVA是完全的面向对象编程在编程中会出现一些造型问题,不能用传统C++知识来应对。JAVA中的数组是对象数组,是对象的管理者,用一个数组给另一个数组赋值时,是同时管理同一数组,
这与C++也不同。
除了JAVA的学习,我还坚持做基础题单。
/
/
/
遇到的问题
JAVA编程中的一些语句,如for-each循环,super(),不清楚如何运用
编程问题,题单第十三道函数题判断中位数,面对较大数组时如何运用希尔排序节省时间。
/
/
/
解决方案
JAVA问题看资料书解决
编程问题需要看视频教学理解,再自己复现代码.