精华内容
下载资源
问答
  • 主要介绍了java private关键字用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • JAVA基础(关键字--private)

    千次阅读 2019-06-13 08:16:34
    1,private的作用 被private关键字私有的成员之后,就只能在本类当中进行访问了 2,private关键字特点 是一个权限修饰符 可以修饰成员变量和成员方法 被其修饰的成员只能在本类中被访问 ... p...

    1,private 的作用

    • 被private关键字私有的成员之后,就只能在本类当中进行访问了

     

    2,private关键字特点

    • 是一个权限修饰符

    • 可以修饰成员变量和成员方法

    • 被其修饰的成员只能在本类中被访问

     

    3,封装和private的应用:

    • 把成员变量用private修饰

    • 提供对应的getXxx()和setXxx()方法

    • private仅仅是封装的一种体现形式,不能说封装就是私有

     

     

    4,人类赋值年龄的问题

    • 封装,可以对传入的值,进行筛选。


     

    
    class Demo1_Person {
    
        public static void main(String[] args) {
    
            Person p1 = new Person();
    
            p1.name = "张三";            //调用姓名属性并赋值
    
            //p1.age = -17;                //调用年龄属性并赋值
    
            //p1.speak();                    //调用行为
    
    
    
            p1.setAge(20);
    
            System.out.println(p1.getAge());
    
        }
    
    }
    
    
    
    
    
    class Person {
    
        String name;                    //姓名
    
        private int age;                //年龄
    
        
    
        public void setAge(int age) {        //设置年龄
    
            if (age > 0 && age < 200) {
    
                this.age = age;
    
                System.out.println(age);
    
            }else {
    
                System.out.println("请回火星吧,地球不适合你");
    
            }
    
            
    
        }
    
    
    
    
    
        public int getAge() {            //获取年龄
    
            return age;
    
        }
    
    
    
    
    
        public void speak() {
    
            System.out.println(name + "..." + age);
    
        }
    
    }
    
    

     

    展开全文
  • 在 Java 中,private 关键字是用于方法,成员变量和内部类的访问修饰符。Java 中的私有方法如果方法标记为 private,则不能从类的外部调用此方法。例如:class A {private void foo() { }void bar() {foo();...

    在 Java 中,private 关键字是用于方法,成员变量和内部类的访问修饰符。

    Java 中的私有方法

    如果方法标记为 private,则不能从类的外部调用此方法。例如:

    class A {

    private void foo() { }

    void bar() {

    foo(); // okay, no problem!

    }

    }

    class B {

    void woo() {

    A a = new A();

    a.foo(); // Oh no! since foo() is private

    }

    }

    Java 中的私有变量

    private 访问修饰符还可以应用于成员变量。 与私有方法一样,私有变量只能在声明它的类中被访问。 例如:

    class A {

    private int number;

    void bar() {

    number = 10; // OK

    }

    }

    class B {

    void foo() {

    A a = new A();

    a.number = 10. // Oh no! since number is private

    }

    }

    Java 中的所有内部类

    如果内部类声明为私有的,那么只能在声明它的类中被访问。例如:

    class A {

    private class SubA {

    // inner class

    }

    void bar() {

    SubA obj = new SubA(); // OK

    }

    }

    class B {

    void foo() {

    A.SubA a = new A.SubA(); // Oh no! since SubA is private

    }

    }

    展开全文
  • Java关键字使用:private 关键字

    千次阅读 多人点赞 2020-03-16 10:17:43
    private关键字作用: 在这里不用官方的话来解释,说简单一点就是,当你设置了private 变量,你需要注意两点: 你可以对类中的属性进行更加精确、细化的限制 在类 → 对象实例化实现的时候要注意使用一对setter 和 ...

    private关键字作用:

    在这里不用官方的话来解释,说简单一点就是,当你设置了private 变量,你需要注意两点:

    • 你可以对类中的属性进行更加精确、细化的限制
    • 在类 → 对象实例化实现的时候要注意使用一对setter 和 getter 来修改和提取对象的属性。

    【下面就这两点展开解释】:

    1. 可以对类中的属性进行更加精确、细化的限制

    【先看一下一般方法】
    在这里插入图片描述
    图1 一般方法的类定义和对象实例展示

    可以看到,在对象中我们可以设定对象的属性,但是问题来了,如果我现在在对象的属性中不小心把年龄输成了负数,那么系统编译也会通过,因为只要是 int 类型的数据,在对象产生的时候编译都是不会报错的,但是实际上,年龄是没有负数的,那么怎么解决这个问题呢!!

    【问题实例】
    在这里插入图片描述
    图2 一般方法的类定义和对象实例的局限和漏洞

    【问题解决 → private】

    2. 在类 → 对象实例化实现的时候要注意使用一对setter 和 getter 来修改和提取对象的属性

    在这里插入图片描述
    图3 使用 private 关键字的类定义和对象实例展示

    【可以看到】

    ① private int age 使用了 private 关键字
    ② 相应的要使用 setAge 来设定更加精确和自由的属性规则; “setAge”的格式是一定的,“set” 为小写,使用 private 关键字的属性是“age”,所以“Age”的第一个字母要大写,这是特定的规则。 例如,如果你要对“name”这个属性进行同样的 private 操作,那么,你应该构成 “setName”“getName” 一对方法来进行操作。但是! 布尔型的方式有例外,比如说你设置了一个布尔型的属性 “name”,那么,当你要对他使用 private 关键字的时候,你使用的一对方法名称应该叫做 “setName”“isName” 而不是上文提到的 “getName”

    “setAge” 的相应要求是: 无返回值,有传入参数
    “getAge”的相应要求是: 有返回值,无传入参数,结合第③条,这两条规则也是规定的!!不能改变

    所以,在对象的实例中(也就是箭头指向的部分),不再使用<图1>中简单的 person.age 来进行对象属性的设定和提取,而是 改成了person.setAge() 来设定 / person.getAge() 来提取。这样可以对属性的 age 有更加精细化的规定和设计,而不再局限于 int 属性所规定的范围。

    ================================================

    PS: 如果使用 private 的关键字,而不用setAge和getAge方法,那么在对象中,无法使用age这个属性,换句话说,使用了private关键字这种方法,在对象设定的时候 “对象.age”这种方便快捷的方式会不合法。错误展示如下:
    在这里插入图片描述
    图4 使用 private 关键字的类定义和对象不规范实例展示

    【可以看到】

    右边的红方框中的部分出现了不合法的红色,证明使用 private 的时候,在对象创建的过程中,必须使用 settergetter 来对特定属性进行操作。

    展开全文
  • 首先,内存模型图,如下:其次,一句话概括各个区域的作用:1:程序计数器(Program Counter Register),让虚拟机中的字节码解释器通过改变计数器的值来获取下一条代码指令,比如分支、循环、跳转、异常处理、线程...

    首先,内存模型图,如下:

    c09a72f4e45583fff17bff6d2eafc776.png

    其次,一句话概括各个区域的作用:

    1:程序计数器(Program Counter Register),让虚拟机中的字节码解释器通过改变计数器的值来获取下一条代码指令,比如分支、循环、跳转、异常处理、线程恢复等;

    2:Java 虚拟机栈(Java Virtual Machine Stacks),栈顶存放当前方法,里面有局部变量表,

    3:本地方法栈(Native Method Stacks),本地方法栈则,是为虚拟机使用到的Native 方法服务,作用同虚拟机栈。

    4:Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。

    5:方法区(Method Area)与Java 堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

    一:创建一个引用类型对象的内存图

    Object obj = new Object();

    假设这句代码出现在方法体中,那:

    1:首先包含这个方法体的类首先被加载到方法区中;

    2:其次方法体本身被压栈进虚拟机栈;

    3:“Object obj”这部分的语义将会反映到虚拟机栈的本地变量表中,作为一个reference 类型数据出现。

    4:而“new Object()”这部分的语义将会反映到Java 堆中,形成一块存储了Object 类型所有实例数据值(Instance Data,对象中各个实例字段的数据)的结构化内存,这块内存的地址存储在虚拟机栈。另外,在Java 堆中还必须包含能查找到此对象类型数据(如对象类型、父类、实现的接口、方法等)的地址信息,这些类型数据则存储在方法区中。

    以上过程,用一个更具体的例子,就是创建数组,其内存图如下:

    55fa7c8af7abf2db997e92e2b259e923.png

    二:创建二位数组的内存图

    如下,为了简单起见,省略了方法区的描述:

    a7c880ee7eb25b7b479c6f2437a429c4.png

    三:方法调用内存图

    假设是这样一段代码,

    public class MethodInvoker {

    public static void main(String[] args) {

    int re = add(1,2);

    System.out.println(re);

    }

    private static int add(int i, int j) {

    return i + j;

    }

    }

    其内存图是如下的,

    准备动作是类和方法的信息加载到方法区,接下来,

    1:main方法压栈;

    2:方法执行过程中add方法压栈,然后方法执行,返回3;

    3:add方法被弹栈,main方法打印3;

    4:main方法弹栈;

    5ea285f8a6baa1cd7fcc9b8da5047d94.png

    三:自定义引用类型对象创建内存图

    第一步:

    f28553182a9694870d9eb4b9e0dff320.png

    第二步:

    c02643c8484acce7fb96ba5475bab029.png

    附件:关于虚拟机栈访问堆中的数据,有两种方式,如下:

    由于reference 类型在Java 虚拟机规范里面只规定了一个指向对象的引用,并没有定义这个引用应该通过哪种方式去定位,以及访问到Java 堆中的对象的具体位置,因此不同虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种:使用句柄和直接指针。

    如果使用句柄访问方式,Java 堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据和类型数据各自的具体地址信息,如下图所示。

    b809178dfbc5e4368a19d3c8fbe5b30e.png

    如果使用直接指针访问方式,Java 堆对象的布局中就必须考虑如何放置访问类型数据的相关信息,reference 中直接存储的就是对象地址,如下图所示

    7f675f6256bf46910e310548a9124c5d.png

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 对于类A、B,A是B的基类,A有一个私有成员nameA.javapublic class A {private String name = "A";public void print() {System.out.println(name);}}B.javapublic class B extends A {}对于A对象a,要想改变a的name...
  • 拉莫斯之舞@CallerSensitivepublic Method getDeclaredMethod(String name, Class>... parameterTypes)throws NoSuchMethodException, SecurityException {checkMemberAccess(Member.DECLARED, Reflection....
  • public class Test15 { public static ArrayList<Student> list = new ArrayList<>();... public static void main(String[] args) { Student s1 = new Student("张三", 1825564871, 122456789
  • 我正在尝试创建一个对象,并在一个操作中填充该对象持有的外部集合的成员.我已经尝试了我能想到的每一个操作顺序,而且似乎无法让它工作.我的课程是(跳过不相关的字段和注释):@DatabaseTablepublic class ...
  • java中private关键字怎么使用发布时间:2020-04-02 11:06:03来源:亿速云阅读:22作者:小新这篇文章主要为大家详细介绍了java中private关键字怎么使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的...
  • java中实现private

    2021-03-16 11:30:05
    该楼层疑似违规已被系统折叠隐藏此楼查看此楼JavaScript中的类JavaScript实际上是一种弱类型语言,与C++和Java等语言不同。因此,在JavaScript中,没有强调类(class)这一概念,但实际运用中,类还是很重要的,比如写...
  • packagejxau.blueDot.lyx;/****@authorliyixiang*@2014-8-19*@TODO:*关于继承的面试题:*第一种情况:246*结果Sub*父类引用指向子类对象,子类重写了父类的方法,所以调用子类的方法*第二种情况:146*编译器出错*...
  • 最小众倍数

    2021-03-22 14:45:39
    21、找出三个整数的组合2、对每个组合求最小公倍数(先求两个数值的最小公倍数,再和第三个数值求最小公倍数)3、找到10种组合里边的最小值输出 #include#includeusing namespace std;int func(int a,int b){int temp1...
  • 1、private修饰符的作用 为了防止数据被意外篡改,使用private修饰符可以将数据域声明为私有的,这也称为是数据域的封装。 2、访问器(accessor)和修改器(mutator)的定义 简单点说,访问器和修改器就是类中定义的方法...
  • 欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 在讲之前,一些基本知识是应该具备的: 1、如果一个类中没有定义构造器,编译器在编译时会自动加上默认无参构造器: public ClassName {} 2、this 和 ...
  • privatevoidcreateJButton(){choice=newJButton();ButtonOption("选择",choice,700,10,100,25,font);out=newJButton();ButtonOption("选择",choice,700,50,100,25,font);}privatevoid...private void createJButton...
  • Java手机通讯录并实现自动发送QQ消息及单人视频聊天窗口 1. 原始问题描述 模拟设计一个手机通讯录管理系统 (1) 显示功能:按名字的汉字首字母归类显示,并提供右侧字母导航条,当点击其中一个字母时,可 快速跳转...
  • class Foo {private String message = "This is a Foo.";public void show() {System.out.println(message);}}正常情况下调用show函数会输出“This is a Foo.”。下面这段代码通过setAccessible方法绕过了Java的权限...
  • 执行GetFloat方法时总是提示转换错误,后来查看帮助手册发现:数据库的字段:类型:float 代表从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据。(占用8字节)类型:real 代表从 -3.40E + 38 到 3.40E + 38 ...
  • private是对成员变量进行修饰,以满足对变量的限制,配合set和get方法
  • 最近做个小实验,其中一部分要求将表单提交的数据转换为double,这个功能其实很简单直接一句Double.parseDouble(request.getParameter("chinese").trim())就可以实现,但因为是统计成绩,所以需要保留小数点后两位,...
  • @Transactional 注解相信大家并不陌生,平时Spring开发中很常用的一个注解,它能保证方法内多个数据库操作的事务性和原子性。在使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是...
  • JAVA中private关键字详解

    千次阅读 2020-06-23 15:37:41
    private关键字 首先定义了一个person类 public class Person { String name ; int age; public void show(){ System.out.println("我的姓名是"+name+"@@@@@@@@@@@"+"我的年龄是"+age); ... public static void main...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼请看以下程序,定义了圆形类Circle,其中的变量用private修饰,然后圆柱类Cylinder继承Circle类,圆柱类中并没有声明半径等变量,但是最后正常输出结果了(请注意我创建...
  • 对于这个问题,一直没有仔细思考,今天整理一下: 对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。因此,只需要两种控制...
  • Java中private的使用

    2021-02-12 20:48:37
    Java中也有为了数据的封装性而声明的private类型。这篇就使用一下,大致的用法和C++类似。Java中引入private的类型,目的是为了防止类中的数据成员,在类的定义之外被修改。也就说,private类型的数据成员只能在定义...
  • Java的private关键字

    万次阅读 多人点赞 2018-09-16 18:56:40
    private关键字 可以修饰成员变量和成员方法 被其修饰的成员只能在本类中被访问 应用:在定义类时给成员变量赋值private,并提供get和set方法用于外部访问,这样可以提高数据的安全性 public class pritry { ...
  • 1.将集合中的内容输出到指定文件中import java.io.BufferedWriter; import java.io.FileWriter; import java.util.ArrayList; import java.util.List; public class ArrayListToFile { public static void main...
  • java中 private关键字的作用及使用方法

    千次阅读 多人点赞 2020-12-13 15:24:53
    private 先看一个程序; 创建的类; package demo04private; public class person { String name; int age;... System.out.println("我叫"+name+"我几年"+age+"岁了");... public static void main(String
  • public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: public class A{  void method(){}; } method就属于default权限。...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 252
精华内容 100
关键字:

javaprivate

java 订阅