LocalDate类的使用
1 /** 2 * 让我们手写一个日历吧 3 * @param args 4 */ 5 public static void main(String[] args) { 6 LocalDate date = LocalDate.now(); 7 int month = date.getMonthValue(); 8 int today = date.getDayOfMonth(); 9 10 date = date.minusDays(today - 1); // Set to start of month 11 DayOfWeek weekday = date.getDayOfWeek(); 12 int value = weekday.getValue(); // 1 = Monday ...7 = Sunday 13 14 System.out.println("Mon Tue Mon Thu Fri Sat Sun"); 15 for(int i = 1; i < value; i ++) 16 System.out.print(" "); 17 while (date.getMonthValue() == month) 18 { 19 System.out.printf("%3d", date.getDayOfMonth()); 20 if (date.getDayOfMonth() == today) 21 System.out.print("*"); 22 else 23 System.out.print(" "); 24 date = date.plusDays(1); 25 if (date.getDayOfWeek().getValue() == 1) System.out.println(); 26 } 27 if (date.getDayOfWeek().getValue() != 1) { 28 System.out.println(); 29 } 30 }
显示效果:
EmployeeTest
1 public class EmployeeTest { 2 3 public static void main(String[] args) { 4 // fill the staff array with three Employee objects 5 Employee[] staff = new Employee[3]; 6 7 staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15); 8 staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1); 9 staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15); 10 11 // raise everyone's salary by 5% 12 for(Employee e : staff) { 13 e.raiseSalary(5); 14 } 15 16 // print out information about all Employee objects 17 for(Employee e : staff) { 18 System.out.println("name=" + e.getName()+",salary=" + e.getSalary() + ",hireDay="+ e.getHireDay()); 19 } 20 } 21 22 23 } 24 25 class Employee 26 { 27 private String name; 28 private double salary; 29 private LocalDate hireDay; 30 31 public Employee(String name, double salary, int year, int month, int day) { 32 super(); 33 this.name = name; 34 this.salary = salary; 35 this.hireDay = LocalDate.of(year, month, day); 36 } 37 38 public String getName() { 39 return name; 40 } 41 42 public double getSalary() { 43 return salary; 44 } 45 46 public LocalDate getHireDay() { 47 return hireDay; 48 } 49 50 public void raiseSalary(double byPercent) 51 { 52 double raise = salary * byPercent / 100; 53 salary += salary; 54 } 55 56 }
StaticTest
1 public class StaticTest { 2 public static void main(String[] args) { 3 // fill the staff array with three Employee objects 4 Employee[] staff = new Employee[3]; 5 6 staff[0] = new Employee("Tom", 40000); 7 staff[1] = new Employee("Dick", 60000); 8 staff[2] = new Employee("Harry", 65000); 9 10 // print out information about all Employee objects 11 for (Employee e : staff) { 12 e.setId(); 13 System.out.println("name = " + e.getName() + ", id = " + e.getId() +", salary = " + e.getSalary());; 14 } 15 16 int n = Employee.getNextId(); // call static method 17 System.out.println("Next avaliable id=" + n); 18 } 19 20 } 21 22 class Employee 23 { 24 private static int nextId = 1; 25 26 private String name; 27 private double salary; 28 private int id; 29 30 public Employee(String name, double salary) { 31 super(); 32 this.name = name; 33 this.salary = salary; 34 this.id = 0; 35 } 36 37 public String getName() { 38 return name; 39 } 40 41 public double getSalary() { 42 return salary; 43 } 44 45 public int getId() { 46 return id; 47 } 48 49 public void setId() 50 { 51 id = nextId; // set id to next avaliable id 52 nextId++; 53 } 54 55 public static int getNextId() { 56 return nextId; // return static field 57 } 58 59 public static void main(String[] args) { 60 Employee employee = new Employee("Harry", 50000); 61 System.out.println(employee.getName() + " " + employee.getSalary()); 62 } 63 64 65 }
public class StaticTest { public static void main(String[] args) { // fill the staff array with three Employee objects Employee[] staff = new Employee[3]; staff[0] = new Employee("Tom", 40000); staff[1] = new Employee("Dick", 60000); staff[2] = new Employee("Harry", 65000); // print out information about all Employee objects for (Employee e : staff) { e.setId(); System.out.println("name = " + e.getName() + ", id = " + e.getId() +", salary = " + e.getSalary());; } int n = Employee.getNextId(); // call static method System.out.println("Next avaliable id=" + n); } } class Employee { private static int nextId = 1; private String name; private double salary; private int id; public Employee(String name, double salary) { super(); this.name = name; this.salary = salary; this.id = 0; } public String getName() { return name; } public double getSalary() { return salary; } public int getId() { return id; } public void setId() { id = nextId; // set id to next avaliable id nextId++; } public static int getNextId() { return nextId; // return static field } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } public static void tripleSalary(Employee x) { x.raiseSalary(200); } public static void main(String[] args) { Employee harry; harry = new Employee("Harry", 50000); tripleSalary(harry); System.out.println(harry.getName() + " " + harry.getSalary()); } }
1 public class StaticTest { 2 public static void main(String[] args) { 3 /** 4 * Test 1: Methods can't modify numeric parameters 5 */ 6 System.out.println("Testing tripleValue:"); 7 double percent = 10; 8 System.out.println("Before: percent=" + percent); 9 tripleValue(percent); 10 System.out.println("After: percent=" + percent); 11 12 /** 13 * Test 2: Methods can change the state of object parameters 14 */ 15 System.out.println(" Testing tripleSalary"); 16 Employee harry = new Employee("Harry", 50000); 17 System.out.println("Before: salary=" + harry.getSalary()); 18 tripleSalary(harry); 19 System.out.println("After: salary=" + harry.getSalary()); 20 21 /** 22 * Test 3: Methods can't attach new objects to object parameters 23 */ 24 System.out.println(" Testing swap:"); 25 Employee a = new Employee("Alice", 70000); 26 Employee b = new Employee("Bob", 70000); 27 System.out.println("Before: a=" + a.getName()); 28 System.out.println("Before: b=" + b.getName()); 29 swap(a, b); 30 System.out.println("After: a=" + a.getName()); 31 System.out.println("After: b=" + b.getName()); 32 33 } 34 35 public static void tripleValue(double x) { 36 x = 3 * x; 37 System.out.println("End of method: x=" + x); 38 } 39 40 public static void tripleSalary(Employee x) { 41 x.raiseSalary(200); 42 System.out.println("End of method: salary=" + x.getSalary()); 43 } 44 45 public static void swap(Employee x, Employee y) { 46 Employee temp = x; 47 x = y; 48 y = temp; 49 System.out.println("End of method: x=" + x.getName()); 50 System.out.println("End of method: y=" + y.getName()); 51 } 52 53 } 54 55 class Employee // simplfied Employee class 56 { 57 private String name; 58 private double salary; 59 60 public Employee(String name, double salary) { 61 super(); 62 this.name = name; 63 this.salary = salary; 64 } 65 66 public String getName() { 67 return name; 68 } 69 70 public double getSalary() { 71 return salary; 72 } 73 74 75 public void raiseSalary(double byPercent) 76 { 77 double raise = salary * byPercent / 100; 78 salary += raise; 79 } 80 }