#学生类
package cn.itcast.callName;
public class Students {
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
package cn.itcast.callName;
import java.util.ArrayList;
import java.util.Random;
public class CallName {
public static void main(String[] args) {
ArrayList<Students> arr = new ArrayList<Students>();
addStudent(arr);
printStudentname(arr);
randomStudents(arr);
}
public static void addStudent(ArrayList<Students> arr){
Students s1 = new Students();
Students s2 = new Students();
Students s3 = new Students();
Students s4 = new Students();
Students s5 = new Students();
Students s6 = new Students();
s1.setName("张三");
s1.setAge(18);
s2.setName("李四");
s2.setAge(19);
s3.setName("王五");
s3.setAge(20);
s4.setName("王八蛋");
s4.setAge(22);
s5.setName("舒淇");
s5.setAge(23);
s6.setName("哈韩狗");
s6.setAge(19);
arr.add(s1);
arr.add(s2);
arr.add(s3);
arr.add(s4);
arr.add(s5);
arr.add(s6);
}
public static void randomStudents(ArrayList<Students> arr){
Random r = new Random();
int index = r.nextInt(arr.size());
Students s = arr.get(index);
System.out.println(s.getName());
}
public static void printStudentname(ArrayList<Students> arr){
for(int i = 0;i <arr.size(); i++){
Students s = arr.get(i);
System.out.println(s.getName()+"..."+s.getAge());
}
}
}
System.out.println(s.getName()+"..."+s.getAge());这一行代码中,s.getName()的原理是啥?我愣是搞不懂,该不会是固定格式吧..
s是否地址,地址调用getName方法吗?那为啥getName后不需要传参?不传参怎么返回值?
兄弟?你这个只有题,没有问,怎么破!
问题尼??貌似木有看见
java程序只要没报错,,它就算是封装了(java具有封装性)、
不过题主程序是自己写的话,你水平还不错,,都可以使用集合类了,
封装类 jdk1.5 以后有的自动拆装箱
封装类? 代码是用了封装类。。。然后呢?没了?
System.out.println(s.getName()+"..."+s.getAge());这一行代码中,s.getName()的原理是啥?我愣是搞不懂,该不会是固定格式吧..
s是否地址,地址调用getName方法吗?那为啥getName后不需要传参?不传参怎么返回值?
Student s = arr.get(i)创建了一个Student对象的引用s指向arr.get(i)这个实例,通过引用s调用getName,getAge方法返回name,age的值,
这个实例你已经在addStudent方法里面通过setName,setAge方法赋值了。getName方法不需要传参是因为name,age两个属性都是全局变量。return就是返回值。