使用范围:
Java中,外部类的修饰符只能是public或protected(默认)这两种;而类的成员(属性,方法,内部类)的修饰符可以是(public,protected,default,private)四种

作用域:

public:
当用使 public修饰类成员时,该成员可以在任意类中被访问(不管是包内还是包外的)

protected:
当用使 protected修饰类成员时,该成员可以被所在包内的任意类 或 其它包中与他有父子关系的子类访问

default
类的成员不用(public,protected,private)访问修饰符修饰时默认为default,默认修饰的成员可以被所在包内的任意类访问

private
当用使private修饰成员变量时,该类的成员仅能在该类内部被访问,或者通过public修饰方法(如:setxx()和getxx())来访问

扩展1:
一个类怎样调用另一个类中的属性和方法?

1.如果类的属性和方法是静态的(属性/方法使用了static修饰),可以直接通过类名调用,无需创建对象
如:
  类名.变量名
  类名.方法名()

2.如果类的属性和方法是非静态的,则需要使用该类的实例对象来调用
如:
  类名 对象名=new 类名();
  对象名.变量名
  对象名.方法名()

3.如果另一个类的属性和方法是私有的,则不能被直接调用

//调用类成员的方法
public class Person {public static void main(String[] args) {Teacher.teacher(); //调用静态方法System.out.println(Teacher.profession="老师"); //调用静态属性Student stu=new Student(); stu.student(); //调用非静态方法System.out.println(stu.profession="学生"); //调用非静态属性Worker work=new Worker();work.setProfession("工人"); //设置private属性值work.getProfession(); }
}
class Teacher{public static String profession;public static void teacher(){System.out.print("我是一名");}
}
class Student{public String profession;public void student(){System.out.print("我是一名");}
}class Worker{private String profession;public String getProfession() {System.out.print("我是一名"+profession);return profession;}public void setProfession(String profession) {this.profession = profession;}
}
输出结果:
我是一名老师
我是一名学生
我是一名工人

扩展2:
对象和实例的区别?

实例一定是对象,但对象不一定是实例 。因为对象是一个抽象概念,你可以说类是对象,也可以说实例是对象。

实例是需要分配内存的,不论是直接赋值,还是new出来的,都是在内存中具体存在的。
但对象可能是null的,比如:定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据,这个时候它是一个对象,但不是一个实例;只有通过new关键字创建该类的实例对象后,系统才会为这个对象分配空间,存储自身的数据,这个时候,这个对象就能一个实例

Test t=new Test();
new 类名时,就会在堆中创建一个实例对象,并为它分配一块内存空间,而t就是这个实例对象的引用(说具体点就是这个对象的内存地址的引用)

注:
1.外部类不能使用static修饰,只能使用public,abstract,final或默认无修饰
2.静态方法不能直接调用动态方法

访问权限修饰符( public,protected,default,private )的使用对象和作用域相关推荐

  1. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  2. 基本数据类型在传参中的自顶向下和自底向上;this;访问权限修饰符

    数据类型传参变化 在重载方法中,如果传入的参数的数据类型的字节大小小于方法中声明的形式参数类型的字节大小,那么实际数据类型就会提升,char型略有不同,如果无法找到接受char参数的方法,就会直接升到 ...

  3. Java访问权限修饰符的区别

    Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符: private: Java语言中对访问权限限制的最窄的修饰符,一般称 ...

  4. Java——类成员的访问权限修饰符(private、protected、public、default)

    本文转载自:https://blog.csdn.net/qq_41420688/article/details/83348546 1. 作用 封装将数据和操作连接起来.封装的一个重要属性:访问控制. ...

  5. 7 类与对象,方法和函数的定义和使用,返回值,权限修饰符 public default protected private(重点)

    文章目录 1 面向对象 1 面向对象概述 2 类与对象 2.1 概述 2.2 Java中类的定义万物皆对象. 2.3Java中对象的定义和使用 3 方法和函数的定义和使用 3.1 什么是方法,函数 3 ...

  6. 学习大数据的第13天——Java面向对象(接口、分析参数返回值的类型不同时如何解决、包以及访问权限修饰符(public、protected、默认、private))

    学习大数据的第13天--Java面向对象(接口.分析参数返回值的类型不同时如何解决.包以及访问权限修饰符(public.protected.默认.private)) 接口 接口的基本定义: 1.1.语 ...

  7. Java的访问控制修饰符_访问权限修饰符_访问权限修饰词

    public > protected > (default) > private 1.public 修饰的,在任何地方都可以访问 2.protected 修饰的,在类内部.同一个包. ...

  8. java子承父业(继承,访问权限修饰符,super,重写,final)

    1.继承 :  子承父业 目的 : 提高代码的复用性         作用: 子类一旦继承父类,有权使用父类中的成员,可以在子类中定义子类独有的内容         定义:   子类  extends ...

  9. Java语法封装之继承、访问权限修饰符、重载与重写、this与super、final、Javabean的使用

    3.3封装 封装 : 隐藏内部的实现细节,对外提供公共的访问方式.方法,类,属性的私有化- 都是封装的体现 封装优点 : 提高程序的安全性 提高代码的复用性 私有是封装,但是封装不是私有 3.3.1 ...

最新文章

  1. 25,000,000行的代码就问你敢不敢动?!
  2. IT运维管理方案 成就企业信息化建设
  3. VUE全选和反选案例
  4. BlockChain:互联网与区块链之间的那些事(P2P下载、P-CDN、分布式计算、社交媒体、P2P借贷、众筹、区块链、自组织)
  5. PHP获取用户真实IP地址
  6. 轻量云腾讯云服务器如何退款,腾讯云服务器等产品可以退款多少次?
  7. crontab 每天凌晨12点定时器_每天摆摊到凌晨5点,94岁煎饼奶奶火了,一句话惊醒无数中学生!...
  8. 微软Azure首席架构师John Gossman就微软加入Linux基金会一事答疑
  9. 转载:为什么OpenFlow没有被广泛采用?
  10. mac能开发android吗,怎么在Mac上开发Android应用
  11. backtrack5 oracle,BackTrack5(BT5)硬盘安装
  12. idea设置前进、后退快捷键
  13. 0基础不用怕,从0到1轻松教你入门Python
  14. 计算机网络口诀,网线水晶头接法顺序图解分享,这个简单口诀记好了(超实用)...
  15. 十年技术进阶路,让我明白了三件要事(8000字长文)
  16. 正则表达式(BREs,EREs,PREs)差异比较
  17. Python学习 10 - 基本数据类型小练习
  18. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛H题小Y与多米诺骨牌(线段树优化dp)
  19. 基于XML的可升级矢量图像(SVG)浅析
  20. SAP S/4HANA Cloud云培训及云认证 | 易拓独家

热门文章

  1. 「雕爷学编程」Arduino动手做(28)——RGB全彩LED模块
  2. android 开发 gradle 自己会容易混淆的东西
  3. php二维数组排序方法(array_multisort usort)
  4. [Cubieboard] Node.js 在 Lubuntu 上安装指南
  5. .net VS 全角问题
  6. Python import导入模块与函数方法 Python语言基础【1】
  7. Flutter Gzip 编码与解码 Dart Gzip 工具类操作
  8. Flutter异步编程async与await的基本使用
  9. Mr.J-- jQuery学习笔记(八)--CSS样式操作
  10. sitemesh3.0的配置以及在静态html中的使用