初学者或者一年工作经验的Java工程师,可能对Java权限修饰符还有一点模糊。不知道这权限修饰符,使用了后,怎么体现?只知道private和public,private配合geter和setter,public对象调用,static类调用。接下来展示一下区别。
包结构:
父类定义属性:
package com.example.demo.defaultTest;
/**
* 父类
*
* @author yousin
* @date 2023/11/7 14:14
*/
public class Fu {
//成员属性
private String testPrivate="private";
String testDefault="default";
protected String testProtected="protected";
public String testPublic= "public";
//静态属性
static private String staticPrivate="staticPrivate";
static String staticDefault="staticDefault";
static protected String staticProtected="staticProtected";
static public String staticPublic="staticPublic";
}
子类调用:子类不能访问private
ps:idea爆红就是编译不通过!
同包下的对象调用:主要看protected和default的区别(default是Java的关键字另有其他作用,用于接口的默认方法,便于接口扩展用->因为接口定义完了,但是想加一个方法,又不想其实现类实现,因为实现类太多或者不想他们实现,Java8就加了这个default修饰符。)而权限修饰符,除了private、protected、public,默认不写就是default。别搞混淆咯哦!
子类不同包:主要看default和protected的区别
不同包又不是子类:主要看default和protected的区别
私有属性:private只能在本类使用!setter和getter是方法,通过public暴露出去的,所以这种叫做封装思想,Java三大特性之一!