目录
预定义类——日历输出:
自定义类——在Java文件中:
什么是封装?
什么是final类型?
修饰变量:
修饰方法:
修饰类:
预定义类——日历输出:
例如:Math类、Date类、ArrayList类。 这些都是java经典的类,称为预定义类(预定义类是指由编程语言的标准库或第三方库已经定义好的类。)与之相对应的是用户自定义类
import java.time.DayOfWeek;
import java.time.LocalDate;public class CalendarTest {public static void main(String[] args) {LocalDate date=LocalDate.now();int month=date.getMonthValue();int today=date.getDayOfMonth();date=date.minusDays(today-1);DayOfWeek weekday=date.getDayOfWeek();int value=weekday.getValue();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);if(date.getDayOfWeek().getValue()==1) {System.out.println();}}if(date.getDayOfWeek().getValue()!=1) {System.out.println();}}}
}
效果图如下:
自定义类——在Java文件中:
一个class类文件中可以有多个类,但是只能有一个public类型的。如下示例(只有employee 是public class):
import java.time.LocalDate;//一个文件里可以有多个类,但是只能有一个类是public
public class EmployeeTest {public static void main(String[] args) {Employee[] staff=new Employee[3];staff[0] = new Employee("Carl Cracker", 75000, 1987, 12 , 15);staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);for(Employee e:staff) {e.raiseSalary(5);}for(Employee e:staff) {System.out.println("name="+e.getName()+",salary="+e.getSalary()+",hireDay="+e.getHireDay());}}
}class Employee{private String name;private double salary;private LocalDate hireDay;public Employee(String n,double s,int year,int month,int day) {name=n;salary=s;hireDay=LocalDate.of(year, month, day);}public String getName(){return name;}public double getSalary() {return salary;}public LocalDate getHireDay() {return hireDay;}public void raiseSalary(double byPercent) {double raise=salary*byPercent/100;salary += raise;}
}
什么是封装?
不需要知道他的底层逻辑,直接调用即可
域就是属性,属性就是域。
什么是final类型?
在Java中,final
是一个关键字,用于修饰类、方法和变量,表示它们是不可变的或不可被进一步修改的。以下是final
关键字在不同情况下的具体用法和意义:
修饰变量:
- 当
final
修饰一个变量时,该变量成为常量,意味着一旦它被初始化之后,就不能再被重新赋值。 final
变量必须在声明时或者在构造器中初始化(对于成员变量),而对于局部变量,则必须在声明时初始化。
public class Example {final int MAX_VALUE = 100; // 类变量,在声明时初始化public Example(int maxValue) {this.finalValue = maxValue; // 实例变量,在构造器中初始化}private final int finalValue;public void someMethod() {final int localValue = 50; // 局部变量,在声明时初始化}
}
修饰方法:
- 当
final
修饰一个方法时,该方法不能在子类中被重写(Override)。
public class Parent {public final void show() {System.out.println("This is a final method.");}
}public class Child extends Parent {// 下面的代码会导致编译错误,因为show方法是final的,不能被重写// @Override// public void show() {// System.out.println("This would cause a compilation error.");// }
}
修饰类:
- 当
final
修饰一个类时,该类不能被继承。这通常用于安全原因或确保类的完整性。
public final class MyClass {// 类的内容
}// 下面的代码会导致编译错误,因为MyClass是final的,不能被继承
// public class AnotherClass extends MyClass {
// // 类的内容
// }
注意!!final不修饰复杂的引用类型,无法阻止其属性变化。
但是public static final,允许只读。他俩常常配合使用——静态常量。static 修饰的被程序所有地方共享,可被直接调用很便捷。