Java核心技术卷一基础知识第10版demo实例
第三章 JAVA的基本程序设计结构
3.7输入与输出
3.7.1读取输入
package 第一个JAVA项目;
import java.awt.desktop.SystemSleepEvent;
import java.util.Scanner;
public class Demo案例 {
public static void main(String[] args) {
Scanner inScanner=new Scanner(System.in);
String MyName="Tom";//自己的名字
//日常问候案例
System.out.println("Hello ,My name is "+MyName);
System.out.println("What is your name?");
String nameString=inScanner.nextLine();//对方名字
System.out.println(nameString+" Nice to meet you!");
System.out.println("How old are you?");
int old=inScanner.nextInt();
System.out.println("This year you are "+old);
}
}
3.8控制流程
3.8.3循环
package 第一个JAVA项目;
import java.util.Arrays;
import java.util.Scanner;
import java.math.*;
public class MyFirstJavaProject {
public static void main(String[] args) {
//计算需要多长时间才能够存储一定数量的退休金,假定每年存
//入相同数量的金额,而且利率是固定的。
//输入相关信息
Scanner inScanner=new Scanner(System.in);
System.out.println("Hou munch money do you want to save?");
Double sumMoney=inScanner.nextDouble();//输入需要存到的总钱数
System.out.println("How munch money can you save in a year?");
Double yearMoney=inScanner.nextDouble();//每年可以存的钱
System.out.println("Please tell me what is the rate?(%)");
Double rateDouble=inScanner.nextDouble();//输入增长率
Double nowMoney=0.0;//当前总钱数
int years=0;//存储需要的年数
Double tempMoney;//每年产生的利润
while(nowMoney<sumMoney) {
nowMoney+=yearMoney;
tempMoney=nowMoney*rateDouble/100;
nowMoney+=tempMoney;
years++;
}
System.out.println("About after "+years+" yeras ,you can achieve you goal.Go for it!");
}
}
3.10数组
3.10.6多维数组
package 第一个JAVA项目;
import java.util.Arrays;
import java.util.Scanner;
import java.math.*;
public class MyFirstJavaProject {
public static void main(String[] args) {
//计算本金为10000时,利率分别为10%,11%,12%,13%,14%,15%
//5年间总钱数分别为多少
final int ROW=6;//二维数组的行数,第一行存储本金。第2-6行存储每年的钱数
final int COL=6;//二维数组的列数,代表利率分别为10%,11%,12%,13%,14%,15%的钱数
final int rateNum=6;//一维数组的元素个数,代表利率个数
double[] rates=new double[rateNum];
for(int i=0;i<rateNum;++i) {
rates[i]=(10+i)/100.0;//为一维数组初始化10%,11%,12%,13%,14%,15%
}
double[][] money=new double [ROW][COL];
for(int i=0;i<money[0].length;++i) {
money[0][i]=10000;
}
for(int i=1;i<money.length;++i) {
for(int j=0;j<money[0].length;++j) {
double temp=money[i-1][j]*rates[j];
money[i][j]=temp+money[i-1][j];
}
}
for(double i:rates) {
System.out.printf("%9.1f%% ",i*100.0);
}
System.out.println();
for(double[] i:money) {
for(double j:i) {
System.out.printf("%10.1f ",j);
}
System.out.println();
}
}
}
第四章 对象与类
4.2使用预定义类
package 第一个JAVA项目;
import java.util.Arrays;
import java.util.Scanner;
import java.math.*;
import java.time.DayOfWeek;
import java.time.LocalDate;
public class MyFirstJavaProject {
public static void main(String[] args) {
//日历
LocalDate date=LocalDate.now();//获取当前时间
int year=date.getYear();//获取年份
int month=date.getMonthValue();//获取月份
int today=date.getDayOfMonth();//获取月份中的日期
System.out.println(year+"年"+month+"月日历");
date=date.minusDays(today-1);//将时间调为当月1号
DayOfWeek weekday=date.getDayOfWeek();//获取date日期是当月的星期几
int value=weekday.getValue();//1-MOnday,...,7-Sunday//将对应的星期几转化为数值
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for(int i=1;i<value;++i)
System.out.print(" ");//打印空格到当月第一号对应的星期几,有四个空格
while(date.getMonthValue()==month) {
System.out.printf("%3d",date.getDayOfMonth());
if(date.getDayOfMonth()==today)
System.out.print("*");
else System.out.print(" ");
date=date.plusDays(1);//将日期加1
if(date.getDayOfWeek().getValue()==1) System.out.println();//遇到周一换行
}
if(date.getDayOfWeek().getValue()!=1) System.out.println();
}
}
4.4静态域与静态方法
//类的简单应用
//主程序
package test_demo_test;
import test_demo_test.Employee;
public class HelloWorld {
public static void main(String args[]){
Employee[] staffs=new Employee[4];//创建三个雇员
staffs[0]= new Employee("唐僧",3000);
staffs[1]= new Employee("孙悟空",2000);
staffs[2]= new Employee("猪悟能",1000);
staffs[3]= new Employee("沙悟净",500);
for(Employee e:staffs){
e.setId();
System.out.println("name = "+e.getName()+" Id = "+e.getId()+" salary = "+e.getSalary());
}
System.out.println("下一个标识码是"+Employee.getnextId());
}
}
//Employee类
package test_demo_test;
public class Employee {
//region 实例域
private static int nextId;//静态域,标识码
private String name;//员工姓名
private int id;//员工编号
private double salary;//员工薪水
//endregion
//region 构造器
public Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
//endregion
//region 访问器
public String getName() {
return this.name;
}
public int getId() {
return this.id;
}
public double getSalary() {
return this.salary;
}
public static int getnextId() {
return nextId;
}
//endregion
//region 更改器
public void setId(){
this.id=nextId;
nextId++;
}
//endregion
public static int getNextId() {//静态方法
return nextId;
}
}