面向对象进阶

static

需求:写一个javaBean类来描述这个班级的学生
属性:姓名、年龄、性别
行为:学习
package myStatic.a01staticdemo01;
public class Student {
    private String name;
    private int age;
    private String gender;
//新增:老师的姓名
    public static String teacherName;
    public Student() {
    }

    public Student(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    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;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
    //行为
    public void study(){
        System.out.println(name+"正在学习");
    }
    public void show(){
        System.out.println(name+","+age+","+gender+","+teacherName);
    }
}
package myStatic.a01staticdemo01;
public class StudentTest {
    public static void main(String[] args) {
        Student.teacherName="啦啦啦老师";
    //1.创建第一个学生对象
    Student s1=new Student() ;
    s1.setName("karry");
    s1.setAge(24);
    s1.setGender("男");
     //   s1.teacherName="啦啦啦老师";
    s1.study();
    s1.show();
        //2.创建第2个学生对象
        Student s2=new Student() ;
        s2.setName("jackson");
        s2.setAge(24);
        s2.setGender("女");
        s2.study();
        s2.show();
    }
}

static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量

被static修饰的成员变量,叫静态变量:

特点:不属于对象,属于类

被该类的所有对象共享

调用方式:1.类名调用2.对象名调用

静态变量是随着类的加载而加载的,优先于对象出现的。

被static修饰的成员方法,叫做静态方法:

特点:

多用于测试类和工具类中,在javabean类中很少会用

调用方式:

类名调用,对象名调用

javabean类:用于描述一类事物的类,例如Student.

测试类:用来检查其他类是否书写正确,带有main方法的类,是程序的入口。

工具类:不是用来描述一类事物的,而是帮我们做一些事情的类。

工具类的要求:

1.类名见名知意

2.私有化构造方法

3.方法定义为静态

定义数组的工具类

package myStatic.a02staticdemo02;
public class ArrayUtil {
    //私有化构造方法
    //目的:为了不让外界创建他的对象
    private ArrayUtil(){}
    //需要定义为静态的,方便调用

public static String printArr(int[]arr){
        StringBuilder sb=new StringBuilder();
        sb.append("[");
    for (int i = 0; i < arr.length; i++) {
        if(i== arr.length-1){
sb.append(arr[i]);
        }else{
            sb.append(arr[i]).append(",");
        }
    }
    sb.append("]");
    return sb.toString();
}
public static double getAverage(double[]arr){
        double sum=0;
    for (int i = 0; i < arr.length; i++) {
        sum=sum+arr[i];
    }
    return sum/ arr.length;
}
}
package myStatic.a02staticdemo02;
public class TestDemo {
    public static void main(String[] args) {
//测试工具类中的两个方法是否正确
        int[] arr1={1,2,3,4,5};
        String str = ArrayUtil.printArr(arr1);
        System.out.println(str);
        double[] arr2={2.5,3.5,6.5,7.5};
        double average = ArrayUtil.getAverage(arr2);
        System.out.println(average);
    }
}

定义学生工具类

package myStatic.a03staticdemo03;
public class Student {
    private String name;
    private int age;
    private String gender;

    public Student() {
    }

    public Student(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    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;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}

package myStatic.a03staticdemo03;
import java.util.ArrayList;
public class StudentUtil {
    private StudentUtil(){}
    //静态方法
    public static int getMaxAgeStudent(ArrayList list){
      //1.定义一个参照物
       int max=list.get(0).getAge();
       //2.循环遍历集合
        for (int i = 1; i < list.size(); i++) {
//i 索引,list.get(i)集合里面每一个元素/学生对象
          int tempAge=list.get(i).getAge();
            if(tempAge>max){
                max=tempAge;
            }
        }
        return max;
    }
}
package myStatic.a03staticdemo03;
import java.util.ArrayList;
public class Test {
    public static void main(String[] args) {
        //1.创建一个集合用来存储学生对象
        ArrayList list=new ArrayList<>();
        //2.创建三个学生对象
      Student s1=new Student("karry",24,"男");
      Student s2=new Student("roy",23,"男");
      Student s3=new Student("jackson",23,"男");
      //3.将学生对象添加到集合中
        list.add(s1);
        list.add(s2);
        list.add(s3);
//4.调用工具类中的方法
        int maxAgeStudent = StudentUtil.getMaxAgeStudent(list);
        System.out.println(maxAgeStudent);
    }
}

你可能感兴趣的:(java,开发语言)