小朋友学Java(6):封装

面向对象有三大特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。
本节讲封装。

程序1

class Woman {
    private String name;
    private int age;
    private Man husband;
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getName() {
        return name;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setHusband(Man husband) {
        this.husband = husband;
    }
    
    public Man getHusband() {
        return husband;
    }       
}

public class Man {
    private String name;
    private int age;
    private Woman wife;
    
    public void setName(String Name) {
        this.name = Name;
    }
    
    public String getName() {
        return this.name;
    }
    
    public void setAge(int Age) {
        this.age = Age;
    }
    
    public int getAge() {
        return this.age;
    }
    
    public void setWife(Woman wife) {
        this.wife = wife;
    }
}

class Test {
    public static void main(String[] args) {
        Woman w = new Woman();
        w.setName("Han Meimei");
        w.setAge(25);
        System.out.println("My name is " + w.getName());
        System.out.println("My age is " + w.getAge());
        
        Man m = new Man();
        m.setName("Li Lei");
        m.setAge(26);
        m.setWife(w);
        
        w.setHusband(m);
        System.out.println("My husband is " + w.getHusband().getName());
        System.out.println();
        
        System.out.println("My name is " + m.getName());
        System.out.println("My age is " + m.getAge());
        System.out.println("You don't know whether I have wife or not!");
    }
}

运行结果:


小朋友学Java(6):封装_第1张图片
1.png

分析:
因为Li Lei不想别人访问他的老婆,所以将wife封装起来,不提供getWife()这个方法。
(小朋友看到这里可能会笑)

程序2

public class J {
    public static void printf(String str) {
        System.out.println(str);
    }
    
    public static void cout(String str) {
        System.out.println(str);
    }
}

class JTest {
    public static void main(String[] args) {
        J.printf("Hello World!");
        J.cout("Hello World!");
    }
}

运行结果:

小朋友学Java(6):封装_第2张图片
2.png

分析:
有些小朋友可能会觉得,C语言中的printf和C++中的cout,比java中的System.out.println要方便。所以这里咱们也封装出printf和cout,实现打印的目的。
(小朋友看到这里应该会很高兴)

当然,这只是举个例子罢了,真正编写Java代码,建议用Java默认提供的System.out.println。


加入少儿信息学奥赛学习QQ群请扫左侧二维码,关注微信公众号请扫右侧二维码


QQ群和公众号.png

你可能感兴趣的:(小朋友学Java(6):封装)