(一)、静态变量
假如说:在一个班级里面有n名学生,每一名学生的姓名。年龄、学号都不一样,我们可以通过创建Student类来对每一名学生进行赋值的操作。然而呢,老师的名字只有一个,那名字肯定也是相同的啊。如果我们在定义老师的名字的时候利用正常的成员变量。那么每次操作一个学生,我们都要对这个老师进行赋值的操作,那么程序会显得有一点笨重。这时候我们就可以使用STATIC静态变量对其操作运行。
1.成员变量是private:
Student类:
public class Student { private String name; private int age; private int id;
main类:
import java.sql.SQLOutput; import java.util.*; import java.awt.*; import java.lang.Math; public class hello { public static void main(String[] avgs) { Student stu1=new Student(); stu1.setAge(18); stu1.setName("吉士先生"); stu1.setId(21032114); stu1.study(); stu1.show(); Student stu2=new Student(); stu2.setAge(20); stu2.setName("傻瓜"); stu2.setId(21032118); stu2.study(); stu2.show(); } }
类对象能访问公有权限的成员变量和公有的成员方法。哪个对象调用这个方法得话,那么就输出和设置这个对象的数据
2.成员变量是public:
Student类:
public class Student { private String name; private int age; private int id; public String teacher; //公有变量
main类:
import java.sql.SQLOutput; import java.util.*; import java.awt.*; import java.lang.Math; public class hello { public static void main(String[] avgs) { Student stu1=new Student(); stu1.setAge(18); stu1.setName("吉士先生"); stu1.setId(21032114); stu1.teacher="大聪明"; //通过调用成员变量进行操作 stu1.study(); stu1.show(); Student stu2=new Student(); stu2.setAge(20); stu2.setName("傻瓜"); stu2.setId(21032118); stu2.study(); stu2.show(); } }
因为我们只对学生对象1进行赋值操作,所以我们此时此刻的对象2的老师的那个位置是空的。
网络异常,图片无法展示
|
3成员变量是static
student类:
public class Student { private String name; private int age; private int id; static String teacher;
main方法:
import java.sql.SQLOutput; import java.util.*; import java.awt.*; import java.lang.Math; public class hello { public static void main(String[] avgs) { Student stu1=new Student(); Student.teacher="大聪明"; // 通过类名.静态成员变量名对其进行赋值.类对象也可以 stu1.setAge(18); stu1.setName("吉士先生"); stu1.setId(21032114); stu1.study(); stu1.show(); Student stu2=new Student(); stu2.setAge(20); stu2.setName("傻瓜"); stu2.setId(21032118); stu2.study(); stu2.show(); } }
因为静态变量是归类所有的,并不是某一个对象所有的
静态变量:优先于类对象的创建在堆里面。
(二)、类的三种格式:
工具类:
1.JavaBean 类:
2.测试类:
3.工具类:
工具类:实质上就是方法(构造函数用私有的)
代码展示:
工具类:
public class Util { private Util(){}; //整数数组转成字符串: public static String ArrayChangeString(int []a){ StringBuilder sb=new StringBuilder(); sb.append("["); for(int i=0;i<a.length;i++){ if(i==a.length-1){ sb.append(a[i]); }else{ sb.append(a[i]).append(","+" "); } } sb.append("]"); return sb.toString(); } //求一个数组的平均数:. public static double Average(int []a){ int sum=0; for(int i=0;i<a.length;i++){ sum+=a[i]; } return sum/a.length; } }
测试类:
import java.sql.SQLOutput; import java.util.*; import java.awt.*; import java.lang.Math; public class hello { public static void main(String[] avgs) { int []a=new int[]{1,2,3,4,5,8}; System.out.println(Util.ArrayChangeString(a)); int []b=new int[]{1,2,3,5,8,7,6,9}; System.out.println(Util.Average(b)); } }
工具类 测试类 JavaBean类。三则连用
题目描述:
有一个对象集合,对象的属性是name score id.请你在工具类中实现类对象中最大的值,然后返回它的类对象。并且后输出所有的值信息。
工具类:
public static Student FindMaxScore(ArrayList<Student> stu){ double max; Student s=stu.get(0); max=s.getScore(); for(int i=1;i<stu.size();i++){ Student s1=stu.get(i); double num=s1.getScore(); if(num>max){ s=s1; //对象拷贝 } } return s; }
JavaBean类:
public class Student { private String name; private double score; private String ID; public Student() { } public Student(String name, double score, String ID) { this.name = name; this.score = score; this.ID = ID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } }
测试类:
import java.sql.SQLOutput; import java.util.*; import java.awt.*; import java.lang.Math; public class hello { public static void main(String[] avgs) { ArrayList<Student> stu=new ArrayList<>(); Student s=new Student("吉士先生",94.3,"256dsd"); Student s1=new Student("小姐也",56.6,"22222d"); Student s2=new Student("大聪明",96.3,"11111d"); stu.add(s); stu.add(s1); stu.add(s2); Student s3=Util.FindMaxScore(stu); System.out.println("最大值的信息是:"+s3.getName()+" "+s3.getScore()+" "+s3.getID()); } }