黑马程序员-权限修饰符

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/** 方法的构成:
 *      [权限修饰符列表][别的修饰符列表] 返回值数据类型 方法名 (参数列表){
 *          运行体;
 *          return 返回值;
 *      }
 *  *****!!!!! : 静态变量和静态方法 :
 *                      除了private 在本类中可以调用使用,在别的类都不行
 *                      除了default 在同一个包中可以,别的都不行   就是继承也不行
 *                      别的都能,import导类  然后可以直接类名调用了
 *
 *  *****!!!!! : 成员变量和成员方法 :
 *                      除了private(私有的,外部不能直接访问的) 在本类中可以调用使用,在别的类都不行
 *                      除了default(默认的,没有权限修饰符的,会默认有default) 包内修饰符 在同一个包中可以,别的都不行    就是继承也不行
 *                      再就是protected(受保护的)继承修饰符  要么在同一个包中,用父类的引用去调用, 要么就有继承关系  前提是得用子类的对象引用去直接调用,也可以看做是继承过来了,(用子类引用去调用,没改变父类的权限,只是在子类调用的,)
 *  ----------------静态变量的访问权限
 *                              public    private     protected   default
 *  当前包同一个类              可以      可以        可以        可以
 *
 *  当前包里面别的类            可以      不可以      可以        可以
 *
 *  别的包里别的类              可以      不可以      可以        不可以
 *
 *  自己包继承关系的类          可以      不可以      可以(V)     可以(V)
 *
 *  从别的包里有继承关系的类    可以      不可以      可以(V)     不可以(V)

*
 *  静态变量:default跨包就不可以,private都不可以
 *
 *
 *  ----------------静态方法的访问权限
 *                              public    private     protected   default
 *  当前包同一个类              可以      可以        可以        可以
 *
 *  当前包里面别的类            可以      不可以      可以        可以
 *
 *  别的包里别的类              可以      不可以      可以        不可以
 *
 *  自己包继承关系的类          可以      不可以      可以(V)     可以(V)   
 *  从别的包里有继承关系的类    可以      不可以      可以        不可以(V)   
 *
 *  静态方法:default跨包就不可以,private都不可以
 *
 *
 *  PPP01 继承于Teacher,PPP01是个Teacher吗? 所以可以直接调用父类的方法,跟继承没有关系
 *      继承归继承,调用归调用
 *  但是PPP01中有了一个和父类相同的静态变量和静态方法,只是代表父类和子类都有一个同名的静态变量和静态方法,和继承没关系
 *      父类归父类,子类的归子类
 *      调用的父类调用就是调用父类的,子类调用就是调用子类的吧,各不相干
 *
 *  这里失效是谁:protected:可继承的访问权限,
 *  包类权限仍然管用
   ----------------成员变量的访问权限
 *                              public    private     protected   default
 *  当前包同一个类              可以      可以        可以        可以
 *
 *  当前包里面别的类            可以      不可以      可以        可以
 *
 *  别的包里别的类              可以      不可以      不可以      不可以
 *
 *  自己包继承关系的类          可以      不可以      可以(V)     可以(V)
 *
 *  从别的包里有继承关系的类    可以      不可以      可以(V)     不可以(V)   
 *
 *  protected:如果跨包的话,必须有继承关系才可以.自己包可以直接访问不影响
 *
 *
 *  成员变量:default跨包就不可以,protected主要作用是别的包有继承关系就可以,自己包继承不继承都可以
 *  这里有个要点:是在实例化子类变量的时候,可以访问父类的成员变量,这才是值可继承访问权限
 *  如果在子类中,实例化父类的对象,这个时候,访问权限不变
 *
 *
 *  ----------------成员方法的访问权限
 *                              public    private     protected   default
 *  当前包同一个类              可以      可以        可以        可以
 *
 *  当前包里面别的类            可以      不可以      可以        可以
 *
 *  别的包里别的类              可以      不可以      不可以      不可以
 *
 *  自己包继承关系的类          可以      不可以      可以(V)     可以(V)   
 *  从别的包里有继承关系的类    可以      不可以      可以        不可以(V)   
 *
 *  default:只要是同一个包里面,不继承也可以实例化访问到,叫包内访问权限
 *  protected:只要是有继承关系的子类中,我们可以通过实例化子类访问父类成员变量和成员属性
 *          叫继承的访问权限(只要有继承,在不在本包都可以)
 *  可继承的访问权限特指protected,是指我们实例化子类,然后通过子类去访问父类的属性,子类和父类不在一个包也可以
 *
 *  静态变量和静态方法,
 *  --1--:只要是静态的就无所谓继承或者不继承,只要能找到就能访问,除了default跨包.protected包外也能访问
 *
 */

时间: 2024-08-03 02:46:09

黑马程序员-权限修饰符的相关文章

黑马程序员_包、访问修饰符以及内部类

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- 一.包:  1.定义包使用关键字:package: 1).注意事项: A.packag

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

黑马程序员_Java反射机制

一切的操作都将使用Object完成,类,数组的引用都可以使用Object来接收 1,认识Class类 以前要是想知道一个类中的属性,成员变量,方法等等的信息的话,需要通过new这个类的对象才能得到这些信息,但是在Java中,也允许一个实例化对象找到一个类的完整的信息,这个类就是Class类,Class类是继承Object类的. 正常方式:  引入需要的"包.类"名称 >取得实例化对象 反射方式:  实例化对象>得到完整的"包.类"名称 getClass(

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员_高新技术_1_Java反射

------- android培训.java培训.期待与您交流! ---------- 0.反射知识体系 下图为反射整体的知识体系,把握住此图也就全局上掌握住反射所有内容. 1.反射概论 1)反射概念 其实字面上可以这么理解反射,平时使用类时都是由类new出对象,而反射则是通过对象"反射"出类的信息,好比一个人照镜子可以看到人类的特征,而看出机制就是镜子反射. 2)Java对象两种类型 Java程序中的许多对象在运行时会出现两种类型:编译时类型和运行时类型.如下代码: Person p

黑马程序员——Java基础篇之对象归要

1.static关键字 1.1.static可以修饰成员变量,成员方法,还有类(其中这里的类是内部类) 1.2.static修饰的部分会随着类的加载而加载: 加载过程:当JVM执行static修饰的代码时,会在内存的共享区给static部分开辟一个空间,供该类持有,static部分不是某个对象的部分,而是该类共有的,所以当一个函数会被多个对象调用时,最好定义成static,这样比较节省空间. 1.3.静态方法只能访问静态成员 原因:如果静态方法中调用了非静态的变量,那么由于静态方法是随着类的加载

黑马程序员_Java基础_接口

------- android培训.java培训.期待与您交流! ---------- 0.接口知识体系 Java接口的知识体系如下图所示,掌握下图中的所有知识就可精通接口. 1.接口概论 1)接口概念 接口是从多个相似类中抽象出来的规范,接口中不包含普通方法,所有方法都是抽象方法,接口不提供实现.接口体现的是规范和实现分离的哲学.规范和实现分离正是接口的好处,让软件系统的各个组件之间面向接口耦合,是一种松耦合的设计.接口定义的是多个类共同的公共行为规范,定义的是一组公用方法. 2)接口与抽象类

黑马程序员-内部类、 抽象类、接口

java面向对象中比较重要的知识还有内部类,抽象类.接口,这些和封装.继承.多态一起赋予java强大的面向对象的能力 1.抽象类 在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的.如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类. 创建抽象类和抽象方法非常有用,因为他们可以使类的抽象性明确起来,并告诉用户和编译器打算怎样使用他们.抽象类还是有用的重构器,因为它们使我们可以很容易地将公共方法沿着