JAVA入门之private关键字 笔记(15)

导读:本篇文章讲解 JAVA入门之private关键字 笔记(15),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

private关键字作用

1.是一个权限修饰符
2.可以修饰成员(成员变量和成员方法)
3.作用是保护成员不被其他类使用,被private修饰的成员只在本类中才能访问

针对private修饰的成员变量,若干个需要被其他类使用,提供相应的操作

1.提供“ get变量名() ”方法,用于获得成员变量的值, 方法用public修饰
2.提供“ set变量名(参数) ”方法, 用于设置成员变量的值, 方法用public修饰

实例演示

这是没用private关键词的对象和测试类

public class Student {
    String name;
    int age;
    public void study(){
        System.out.println("学习");
    }
    public void doHomeword(){
        System.out.println("做作业");
    }
}
public class StudentCase {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "小明";
        s.age = 20;
        System.out.println("该学生为" + s.name + s.age);
        s.study();
        s.doHomeword();
    }
}

执行结果
在这里插入图片描述

这时候,当我们在对象代码增加private关键词之后

public class Student {
    String name;
    private  int age;
    public void study(){
        System.out.println("学习");
    }
    public void doHomeword(){
        System.out.println("做作业");
    }
}

测试类的代码竟然出现了错误
在这里插入图片描述
在这里插入图片描述

这是因为private限制了访问,使得成员变量age不被其他类使用,被private修饰的成员只在本类中才能访问

因此我们可以用“ get变量名() ”方法和“ set变量名(参数) ”方法
因此在对象代码中增加getAge() 和 setAge(int a) 的方法

public class Student {
    String name;
    private  int age;
    public void setAge(int a){
        age = a;
    }
    public int getAge(){
        return age;
    }
    public void study(){
        System.out.println("学习");
    }
    public void doHomeword(){
        System.out.println("做作业");
    }
}
因此在测试类中只需要调用这两个方法即可对对象的age进行操作
public class StudentCase {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "小明";
        s.setAge(30);
        System.out.println("该学生为" + s.name + s.getAge());
        s.study();
        s.doHomeword();
    }
}

在这里插入图片描述

  欸,这和不用private关键词的时候不是一样的吗?有啥区别?有啥意义?

对,目前是一样的。但是通过private关键词,我可以直接在对象代码中对输入的年龄进行判断,从而判断输入的年龄是否合法。

public class Student {
    String name;
    private  int age;
    public void setAge(int a){
        if (a < 0) System.out.println("年龄输入有误");
        else age = a;
    }
    public int getAge(){
        return age;
    }
    public void study(){
        System.out.println("学习");
    }
    public void doHomeword(){
        System.out.println("做作业");
    }
}
当我给年龄赋值为-30的时候
public class StudentCase {
    public static void main(String[] args) {
        Student s = new Student();
        s.name = "小明";
        s.setAge(-30);
        s.study();
        s.doHomeword();
    }
}

在这里插入图片描述

这就可以在对象代码中进行限制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/95060.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!