类的高级概念(内部类和访问)
来源:互联网 发布:首轮融资知乎 编辑:程序博客网 时间:2024/06/06 03:22
关键字 : static , extends, public, protected, private
Java为类中的成员提供了四种访问级别:
* 访问级别由大到小:public>protected>默认>private
1.公开访问级别: 使用 public 关键字;用public关键字修饰的成员对外公开,可以被任何其它对象访问.
2.受保护访问级别: 使用 protected 关键字;受保护的成员可以被同一个包中的类所访问,还可以被类的子类访问,不管子类在哪个包中.
3.默认访问级别(猿类自定friendly): 没有访问修饰符.默认访问级别的成员可以被同一个包中的其它类所访问.
4.私有访问级别: 使用 private 关键字.它是四种访问修饰符中级别最低的,只有类本身可以访问它.
* 子类方法的修饰符必须不小于父类方法的修饰符;
* 子类抛出的异常不能比父类抛出的多;
封装:
封装的成员变量都是private,提供public方法访问这些成员变量的技术。(封装也称为数据隐藏)。
继承、封装、多态、抽象是面向对象编程的四大概念。
封装包含get()和set()方法,不能说成get()、set()就是封装。
封装的一些好处:
①类的成员变量可以成为只读或者只写的。
②类可以对存储在其成员变量中的内容有一个整体的控制。
③类的用户不需要知道类是如何存储数据的。
静态成员:
1.通过static 声明的成员变量或者方法可以被认为是全局的;
2.静态的成员变量不能使用引用来访问,要使用类名;
静态或非静态的方法可以访问静态的成员变量
静态方法不能访问非静态的成员变量或方法(实例成员变量或方法);
静态初始化块: 一组当类被JVM的 类加载器 加载时执行的语句.
定义语法
static{
//语句出现在这里
}
实例化初始化块: 它在类的对象每次实例化时执行一次,在构造器调用之前执行
定义语法
{
//语句出现在这里
}
实例:
Java为类中的成员提供了四种访问级别:
* 访问级别由大到小:public>protected>默认>private
1.公开访问级别: 使用 public 关键字;用public关键字修饰的成员对外公开,可以被任何其它对象访问.
2.受保护访问级别: 使用 protected 关键字;受保护的成员可以被同一个包中的类所访问,还可以被类的子类访问,不管子类在哪个包中.
3.默认访问级别(猿类自定friendly): 没有访问修饰符.默认访问级别的成员可以被同一个包中的其它类所访问.
4.私有访问级别: 使用 private 关键字.它是四种访问修饰符中级别最低的,只有类本身可以访问它.
* 子类方法的修饰符必须不小于父类方法的修饰符;
* 子类抛出的异常不能比父类抛出的多;
封装:
封装的成员变量都是private,提供public方法访问这些成员变量的技术。(封装也称为数据隐藏)。
继承、封装、多态、抽象是面向对象编程的四大概念。
封装包含get()和set()方法,不能说成get()、set()就是封装。
封装的一些好处:
①类的成员变量可以成为只读或者只写的。
②类可以对存储在其成员变量中的内容有一个整体的控制。
③类的用户不需要知道类是如何存储数据的。
静态成员:
1.通过static 声明的成员变量或者方法可以被认为是全局的;
2.静态的成员变量不能使用引用来访问,要使用类名;
静态或非静态的方法可以访问静态的成员变量
静态方法不能访问非静态的成员变量或方法(实例成员变量或方法);
静态初始化块: 一组当类被JVM的 类加载器 加载时执行的语句.
定义语法
static{
//语句出现在这里
}
实例化初始化块: 它在类的对象每次实例化时执行一次,在构造器调用之前执行
定义语法
{
//语句出现在这里
}
实例:
--父类public class Vehicle {static {System.out.println("静态初始化块加载中...");}{System.out.println("(实例)初始化块加载中...");}Vehicle(){System.out.println("父类构造器加载中...");}}--子类public class Bus extends Vehicle {{System.out.println("逗b程序正在运行...");}public Bus(){System.out.println("子类构造器加载中...");}}main方法:public class Test {public static void main(String[] args) {Bus c = new Bus(); }}执行结果:静态初始化块加载中...(实例)初始化块加载中...父类构造器加载中...逗b程序正在运行...子类构造器加载中...
四种内部类 : 成员内部类,局部内部类,静态内部类,匿名内部类
从位置上来区分有:成员内部类 -- 静态内部类
局部内部类 -- 匿名内部类
1.成员内部类:位置和成员变量一致.
例:public class Test {//类Test为外部类public class Fun{ //--类Fun 为内部类Scanner sc = new Scanner(System.in);public int sum(){System.out.println("请输入两个数:");int x = sc.nextInt();int y = sc.nextInt();return x+y;}}public static void main(String[] args) {Test t = new Test();Fun f = t.new Fun();//Fun f = new Test().new Fun();System.out.println("两数和:"+f.sum());}}
2.局部内部类:在类的方法内部中定义的,只能在方法内部使用例:public class Test {Scanner sc = new Scanner(System.in);public int add() {System.out.println("请输入两个数:");int a = sc.nextInt();int b = sc.nextInt();class Math {public int sum(int x, int y) {return x + y;}}// Math m = new Math();// return m.sum(a, b);return new Math().sum(a, b);}public static void main(String[] args) {Test t = new Test();// Fun f = t.new Fun();System.out.println("两数和:" + t.add());}}3.静态内部类 : 在成员内部类前加static4.匿名内部类: 它的定义与对象的创建合并在一起,它是为唯一对象而定义的类.定义:new 类或者接口的名字(){//匿名内部类的主体}public class Test {public static void main(String[] args) {Sum f = new Sum();f.add(new Fuck() {public int JF(int x, int y) {return x - y;}});}}class Sum {public void add(Fuck jf) {System.out.println("结果为:" + jf.JF(10, 5));}}class Fuck {public int JF(int x, int y) {return x + y;}}
0 0
- 类的高级概念(内部类和访问)
- 类的高级概念--内部类
- 类的高级概念、staatic、初始化块、内部类
- 类可以访问它的内部类(和内部类的内部类)的所有成员
- 内部类(访问规则和静态内部类)
- 内部类和外部类的访问细节
- 内部类的创建和访问
- java.类的高级特性.内部类
- 内部类的访问
- 内部类的访问
- 【内部类】内部类的概念及成员内部类
- Java-内部类(三)成员内部类就应该访问外部类的成员!!
- 内部类 内部类的访问 匿名内部类
- JAVA 在外部类外部访问内部类,静态内部类和非静态内部类的区别
- 内部类访问外部类的实例
- Java内部类的概念
- Java内部类的概念
- 访问控制和内部类
- HTTP Status 404 - The requested resource (/Test/loginSerlet) is not available.
- 如何防止Session伪造攻击
- rand()函数
- Java之反射、枚举、内省、注解
- 使用hibernate 分表做增删改查
- 类的高级概念(内部类和访问)
- DOM应用
- 从技术角度深入剖析:改号软件,电话号码任意显示,伪造来电显示
- PHP代码从Windows环境迁移到linux环境下问题
- UVa 11995 I Can Guess the Data Structure!
- hihocoder:完全背包
- Fruit(母函数模板题)
- 开发网站
- getView的原理