面向对象进阶
2023-12-25 22:28:41
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<Student> 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<Student> 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);
}
}
文章来源:https://blog.csdn.net/qq_52326978/article/details/135209319
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!