怕什么真理无穷

导航

关于对象的简单理解

class Person{
    void say1(){
    System.out.println("Who am I?");
    }
    void say2()
    {
    System.out.println("I am Jason!");
    }
}
 
class Example{
    public static void main(String[] args){
        Person exp =new Person();//建立一个对象,如同声名一个变量(对象名)
        exp.say1();//对象建立后,可以调用对象里的所有成员,这里调用的是Person下的say1
        exp.say2();//尝试调用say2
        //Person.say1();//能不能不进行对象建立,直接调用Person下的成员呢,答案是不能。除非是静态方法,可跳转致《关于STATIC之静态变量和静态方法的简单理解》了解
        //exp=null;//这里是将exp这个对象清空
        //exp.say1();//还调用exp里面的成员,就会报空指针错误,因为exp这个对象中所有的内容都被置为空了
    }
 
 }
 
 /**建立一个对象,如同声名一个变量(对象名): 将exp这个变量(对象名)定为Person数据类型
 new后边是引用上边Person类的所有属性,像是为Person克隆出一个叫exp的对象,从此exp代表了Person的一切(映射),当Person变时,exp也会变
 如果是普通变量,那类型基本固定,而如果是一个类,有多种数据类型是不确定的,所以要定义成一个对象来支持*/

 

class Student{
    private String name;
    private int age;
    private String Adr;
    
    public void setName(String stuName){//调用时要传入参,类型为String,如果不输或者类型不对会报错
        name=stuName;
    }
    public void setAge(int stuAge){        //调用时要传入参,类型为int,如果不输或者类型不对会报错
        if(stuAge<=0){
            System.out.println("年龄不合法!");
        } else{
            age=stuAge;
        }
    }
    public void getAdr(){                //调用时不要传入参,否则报错
        Adr="中国";        //如果只赋个值,其实也可以在定义变量时给默认值,效果一样,后方就可以不调用
    }
    public void introduce(){
        System.out.println("大家好,我叫"+name+",今年"+age+"岁!"+"我住在"+Adr);
    }
    
    /*public int getAge(){
        return age;
    }
    public String getName(){
        return name;
    }*///这一段要不要好像没什么不一样
    
}

public class Example04{
    public static void main(String[] args){
        Student stu= new Student();
        stu.setAge(3);//调用方法,传入入参
        stu.setName("张三");//调用方法,传入入参
        stu.getAdr();//调用方法,不用传参,否则报错,也不能不调,否则为空
        stu.introduce();
    }
}

 

posted on 2021-01-24 14:03  惭愧书生  阅读(54)  评论(0)    收藏  举报