静态
/*
在 Java 中:
同一包内的类:指的是在相同的包(package)中定义的所有类。例如,如果两个类都在 com.example 包中,它们属于同一包。
所有子类:指的是继承自某个类的所有类,无论这些子类位于哪个包中。例如,ClassB 是 ClassA 的子类,不论 ClassB 是否在 com.example 包中,它都是 ClassA 的子类。
所有包:指的是 Java 项目中的所有包。不同包之间的类是隔离的,只有公共(public)成员和特定的访问权限(如 protected)允许跨包访问。
总的来说,同一包内的类可以相互访问所有包内的 protected 和默认(无修饰符)成员,而子类可以访问其父类的 protected 成员,无论子类位于哪个包。
*/
class Student{
private String name;
private int age;
//只能通过 Student 类提供的公共方法进行
private static String school="qinghua";
public Student(String name,int age){
this.name=name;
this.age=age;
}
public void info(){
System.out.println("姓名:"+this.name+",年龄"+this.age+",学校:"+school);
}
public static void setSchool(String s){
school=s;
}
}
class Main{
public static void main(String[] args) {
Student stu1=new Student("张三",18);
Student stu2=new Student("李四",19);
Student stu3=new Student("王五",20);
/*
创建了一个 Student 类的对象 stu1,并调用了
Student 类中的构造方法 public Student(String name, int age)
*/
stu1.info();
stu2.info();
stu3.info();
System.out.println("==================");
Student.setSchool("beida");
stu1.info();
stu2.info();
stu3.info();
}
}
继承
class Animal{
private String name;
private int age;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
}
/*子类继承父类,并且在子类也定义专属属性*/
class Dog extends Animal{
private String color;
public String getColor(){
return color;
}
public void setColor(String color){
this.color=color;
}
}
public class Main{
public static void main(String[] args)
{
Dog dog=new Dog();
dog.setName("德牧");
dog.setAge(1);
dog.setColor("黑白");
System.out.println(dog.getName()+"\n"+dog.getAge()+"\n"+dog.getColor());
}
}
利用random随机生成验证码
import java.util.Random;
public class Main{
public static void main(String[] args){
System.out.println(createCode(5));
}
//static类只能在同一个类中被调用,所以应该放在Main里
public static String createCode(int n){
Random r=new Random();
String code="";
for(int i=0;i<n;i++){
int type=r.nextInt(3);
//表示类型,数字,小写字母大写字母
switch(type){
case 0:
code+=r.nextInt(10);
break;
case 1:
code+= ((char)r.nextInt(26)+65);
//大写字母26——65;
break;
case 2:
code+= (char)(r.nextInt(26)+97);
}
}
return code;
}
}
常用API