Java中 private关键字 详细用法及解释

这篇具有很好参考价值的文章主要介绍了Java中 private关键字 详细用法及解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java中 private关键字 详细用法及解释

一、为什么要使用private

​ 出于 安全性考虑,我们在写字段时,尽量考虑采用 封装,这样可以隐藏类的细节,只对外开放接口即可实现对象之间的交互。

二、private关键字的定义

  • private是 一个访问限定修饰符

  • 可修饰的的范围:

    1. 修饰成员变量:
      表示当前成员变量只能在当前类中使用

    2. 修饰成员方法:

      表示当前成员方法只能在当前类中使用

附:访问限定修饰符图表

java private,java,开发语言

三、private代码的实例

修饰成员变量时:

class Person {
    private String name = "张三";
    int age = 18;
}

class Student extends Person {

    public String gender;
}
public class Test {


    //private关键字测试
    public static void main(String[] args) {

        Person person = new Person();
        Person p = new Student();

        //编译均无法通过,因为String name 属性被 private修饰
        System.out.println(person.name);
        System.out.println(p.name);
    }

如下:

java private,java,开发语言


那么如何让其他类使用到private的成员变量呢?

​ 我们可以创建一个 public 方法,在方法里 仅return 被private修饰的变量

​ 这里我们用getName() 方法来传递name的值;

class Person {
    private String name = "张三";
    int age = 18;

    //用来传递private修饰的name的值
    public String getName() {
        return name;
    }
}

public class Test {


    //private关键字测试
    public static void main(String[] args) {

        Person person = new Person();

        System.out.println(person.getName());
    }

​ 同理,如果我们想对private修饰的变量进行赋值,可以建立一个setName()方法

class Person {
    private String name = "张三";
    int age = 18;

    //用来传递private修饰的name的值
    public String getName() {
        return name;
    }

    //用来修改private修饰的name的值
    public void setName(String name) {
        this.name = name;
    }
}

public class Test {


    //private关键字测试
    public static void main(String[] args) {

        Person person = new Person();

        System.out.println("修改之前:" + person.getName());
        person.setName("李四");
        System.out.println("修改之后:" +person.getName());
    }
}

运行结果如图:

java private,java,开发语言

注: 如果你使用的集成开发环境是IDEA,那么可以使用快捷键快速创建 Getter and setter函数

java private,java,开发语言

如果点击 Getter and Setter,编译器会自动创建好上述两个方法;
如果只想创建Getter 或 是Setter方法,只用点击上面的 Getter 或者是 Setter就可以了。文章来源地址https://www.toymoban.com/news/detail-773600.html

到了这里,关于Java中 private关键字 详细用法及解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java ---一些关键字

     ①含义: this:当前对象 在构造器和非静态代码块中,表示正在new的对象 在实例方法中,表示调用当前方法的对象 ②this用法: this.成员变量:表示当前对象的某个成员变量,而不是局部变量 this.成员方法:表示当前对象的某个成员方法,完全可以省略this. this()或this(实参列

    2023年04月09日
    浏览(43)
  • 【Java入门】final关键字、static关键字、内部类的认识

    前言 : final是Java中的一个修饰符,用于表示某个变量、方法或者类不能被修改。final可以用于修饰类、方法和变量(局部变量,成员变量)。被final所修饰的类不能被继承,被final所修饰的方法不能被重写,被final所修饰的变量,不能被重新赋值 。 static是Java中的一

    2024年02月11日
    浏览(55)
  • 关于哪些java关键字

    放有道笔记里面东西太多,整理整理放出来 1: 关于static: 》在不实例化对象的情况下访问变量或者调用方法,常用的如各种工具类,无状态且无需实例化对象,直接调用。 》static代码块,常用来在加载class的时候就初始化且只有一次:配置文件加载,keystore/truststore初始化。

    2024年02月03日
    浏览(38)
  • JAVA volatile 关键字

    volatile 是JAVA虚拟机提供的轻量级的同步机制,有三大特性 1、保证可见性  2、不保证原子性  3、禁止指令重排 JMM  JAVA内存模型本身是一种抽象的概念并不真实存在 它描述的是一组规则或规范,提供这组规范定义了程序中各个变量(包括实例变量、静态变量)的访问方式。

    2024年02月13日
    浏览(52)
  • 【java】static关键字

    类与对象的关系 类是构建对象的模板,一个类可以构建多个对象。 类在 方法区 当中,对象在 堆 中。 static修饰的变量是 独属于类 的变量,没有给对象。 运行结果  static修饰的变量究竟储存在什么地方 在 方法区 当中有 静态常量池 ,static修饰的变量被放在静态常量池中,

    2024年04月15日
    浏览(32)
  • Java static 关键字

    Java 中的 static 是一个非常重要的概念,它可以用来修饰变量、方法和代码块。 static 用于修饰类的成员,包括变量、方法和代码块。使用 static 修饰的成员被称为静态成员,它们属于类而不是对象,可以被类的所有实例共享。 1. 静态变量 使用 static

    2024年02月11日
    浏览(37)
  • Java面向对象——多态、Object类、instanceof关键字以及final关键字

    总之,多态是面向对象编程中一个非常重要的概念,通过它可以实现统一的接口来操作不同的对象,提高代码的可读性和可维护性。在实际编程中,多态性的使用可以使代码更加灵活和扩展性更强。方法重写是实现多态的基础。 重写如下所示 关于hashCode方法的重写: 重写t

    2024年02月12日
    浏览(70)
  • 【Java基础】volatile关键字

    关于作者:CSDN内容合伙人、技术专家, 从零开始做过日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 我们继续总结学习Java基础知识,温故知新。 volatile 是一个Java,可以用来修饰变量,volatile也被称为轻

    2024年02月11日
    浏览(46)
  • Java 关键字:synchronized详解

    Java中的synchronized用于在多线程环境下确保数据同步。它可以用来修饰方法和代码块 当一个线程访问一个对象的synchronized方法或代码块时,其他线程将无法访问该对象的其他synchronized方法或代码块。这样可以确保在同一时间只有一个线程能够执行该代码块或方法,避免

    2024年02月08日
    浏览(52)
  • java 常用注解, 常用关键字

    用 @Controller 定义一个控制器类 @Controller 用于标记在一个类上,使用它标记的类就是一个Spring(MVC,BOOT)的 Controller类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了 @RequestMapping 注解。 @Controller 只是定义了一个控制器类,而使用 @RequestMapping 注解的方法

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包