请教关于封装类的小白问题

#学生类

 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就是返回值。