java封装和关键字

科技资讯 投稿 11600 0 评论

java封装和关键字

一、封装

封装:告诉我们如何正确设计对象的属性和方法

对象代表什么,就得封装对应的数据,并提供数据对应的行为

封装的好处:

  1. 降低学习成本,可以少学,少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行

二、Private关键字:

  1. 可以修饰成员变量(成员变量和成员方法)

eg:

package com.itheima.Class;

public class Girlfriend01 {
    //属性
    private String name;
    private int high;
    private String gender;
    private int age;

    //针对于每一个私有化的成员变量,都需要提供get和set方法
    // set方法:给成员变量赋值
    // get方法:在提供成员变量的值
    //作用:给成员变量name进行赋值
    public void setName(String n {//变量有参数但是无返回值,需要接收数据,不需要提供结果
        name = n;
    }

    public String getName( {//作用:对外提供内的属性,不需要接收数据,需要对外输出结果,需要有返回值
        return name;
    }

    // setAge:给成员变量age进行赋值
    public void setAge(int a {//只接收数据,变量有参数,但是没有返回值
        if (age >= 16 && age <= 50 {
            age = a;
        } else {
            System.out.println("非法数据";
        }
    }

    public int getAge( {
        return age;
    }

    public void setHigh(int h {
        high = h;
    }

    public int getHigh( {
        return high;
    }

    public void setGender(String g {
        gender = g;
    }

    public String getGender( {
        return gender;
    }

    //行为
    public void eat( {
        System.out.println("她会吃饭";
    }

    public void play( {
        System.out.println("她会干活";
    }
}
package com.itheima.Class;

public class Girlfriend01Test01 {
    public static void main(String[] args {
        Girlfriend01 p1 = new Girlfriend01(;//创建一个对象
        p1.setName("小诗诗";
        p1.setAge(18;
        p1.setGender("女";
        p1.setHigh(170;
        System.out.println(p1.getName(;
        System.out.println(p1.getAge(;
        System.out.println(p1.getGender(;
        System.out.println(p1.getHigh(;
        p1.eat(;
        p1.play(;
        Girlfriend01 p2 = new Girlfriend01(;//创建第二个对象
        p2.setName("筱筱";
        p2.setAge(22;
        p2.setGender("男";
        p2.setHigh(168;
        System.out.println(p2.getName(;
        System.out.println(p2.getAge(;
        System.out.println(p2.getGender(;
        System.out.println(p2.getHigh(;
        p2.eat(;
        p2.play(;
    }
}

运行结果:
小诗诗
18

170
她会吃饭
她会干活
筱筱
22

168
她会吃饭
她会干活

总结:

  1. 可以修饰成员(成员变量和成员方法)

  2. 针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:

    ​ 2、提供”getXxx()“方法,用于获取成员变量的值,方法用public修饰

三、this.关键字

成员变量和局部变量:

  1. 局部变量:把变量定义在方法里面叫做局部变量

this的作用:

就近原则:

当定义的类和方法里面都有相同的变量,对于输出语句而言,成员变量和局部变量哪个变量对输出语句更近,程序就会打印哪个变量对应的值

public class Gilrfirend{
	private int age;
	public void method({
	int age = 10;
	system.out.println(age
	}
}

运行结果:

如果我们要打印私有类的age,那么就要使用this.关键字:
public class Gilrfirend{
	private int age;
	public void method({
	int age = 10;
	system.out.println(this.age
	}
}

运行结果:0

eg:

package com.itheima.Test002;

public class Girlfriend01 {
        //属性
        private String name;
        private int high;
        private String gender;
        private int age;

        public void setName(String name {
                this.name = name;//直接使用成员变量,不使用局部变量
                /*等号右边的name触发就近原则表示局部变量string name,
                而string name记录的是主方法里面的setName传递过来的诗诗
                局部变量表示测试类中调方法传递过来的数据
                 */
                //等号的左边表示成员位置的name

        }

        public String getName( {
                return name;
        }

        public void setAge(int age {
                if (age >= 16 && age <= 50 {
                        this.age = age;//直接使用成员位置的age
                } else {
                        System.out.println("非法数据";
                }
        }

        public int getAge( {
                return age;
        }
        public void setHigh(int high {
                this.high = high;//直接使用成员变量,不使用局部变量
        }

        public int getHigh( {
                return high;
        }

        public void setGender(String gender {
                this.gender = gender;//直接使用成员变量,不使用局部变量
        }

        public String getGender( {
                return gender;
        }

        //行为
        public void eat( {
                System.out.println("她会吃饭";
        }

        public void play( {
                System.out.println("她会干活";
        }
}
package com.itheima.Test002;

import com.itheima.Test001.Girlfriend01;

public class Girlfriend01Test01 {
    public static void main(String[] args {
        Girlfriend01 p1 = new Girlfriend01(;//创建一个对象
        p1.setName("小诗诗";
        p1.setAge(18;
        p1.setGender("女";
        p1.setHigh(170;
        System.out.println(p1.getName(;
        System.out.println(p1.getAge(;
        System.out.println(p1.getGender(;
        System.out.println(p1.getHigh(;
        p1.eat(;
        p1.play(;
        com.itheima.Test001.Girlfriend01 p2 = new Girlfriend01(;//创建第二个对象
        p2.setName("筱筱";
        p2.setAge(22;
        p2.setGender("男";
        p2.setHigh(168;
        System.out.println(p2.getName(;
        System.out.println(p2.getAge(;
        System.out.println(p2.getGender(;
        System.out.println(p2.getHigh(;
        p2.eat(;
        p2.play(;
    }
}

运行结果:
小诗诗
18

170
她会吃饭
她会干活
筱筱
22

168
她会吃饭
她会干活

编程笔记 » java封装和关键字

赞同 (54) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽