Java面向对象 Object类 内部类
来源:互联网 发布:买域名送空间 编辑:程序博客网 时间:2024/06/10 23:51
Java面向对象 Object类 内部类
知识概要:
一:Object类
二:内部类 匿名内部类的写法
1.Object
Object:是所有对象的直接后者间接父类,传说中的上帝。
该类中定义的肯定是所有对象都具备的功能
Object类中已经提供了对对象是否相同的比较方法。
如果自定义类中也有比较相同的功能,没有必要重新定义。
只要沿袭父类中的功能,建立自己特有比较内容即可。这就是覆盖。
代码演示
class Demo //extends Object{private int num;Demo(int num){this.num = num;}public boolean equals(Object obj)//Object obj = new Demo();{if(!(obj instanceof Demo))return false;Demo d = (Demo)obj;return this.num == d.num;}public String toString(){return "demo:"+num;}}class Person {}class ObjectDemo {public static void main(String[] args) {Demo d1 = new Demo(4);System.out.println(d1);//输出语句打印对象时,会自动调用对象的toString方法。打印对象的字符串表现形式。Demo d2 = new Demo(7);System.out.println(d2.toString());//Demo d2 = new Demo(5);//Class c = d1.getClass();////System.out.println(c.getName());//System.out.println(c.getName()+"@@"+Integer.toHexString(d1.hashCode()));//System.out.println(d1.toString());//Person p = new Person();///System.out.println(d1.equals(p));}}
2.内部类:
将一个类定义在另一个类的里面,对里面那个
类就称为内部类(内置类,嵌套类)。
访问特点:
• 内部类可以直接访问外部类中的成员,包括私有成员。
• 而外部类要访问内部类中的成员必须要建立内部类的对象。
内部类的位置
内部类定义在成员位置上
• 可以被private static成员修饰符修饰。
• 被static修饰的内部类只能访问外部类中的静态成员。
内部类定义在局部位置上
• 也可以直接访问外部类中的成员。
• 同时可以访问所在局部中的局部变量,但必须是被final修饰的。
匿名内部类
就是内部类的简化写法。
前提:
• 内部类可以继承或实现一个外部类或者接口。
格式为:
• new 外部类名或者接口名(){覆盖类或者接口中的代码,(也可以自定义内容。)}
简单理解:
• 就是建立一个建立一个带内容的外部类或者接口的子类的匿名对象。
class Outer{private int x = 3;class Inner//内部类{//int x = 4;void function(){//int x = 6;System.out.println("innner :"+Outer.this.x);//若打印x则符合就近原则。}}/**/void method(){Inner in = new Inner();in.function();}}class InnerClassDemo{public static void main(String[] args) {Outer out = new Outer();out.method();//直接访问内部类中的成员。//Outer.Inner in = new Outer().new Inner();//in.function();}}
访问格式:
1,当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。可以直接建立内部类对象。格式
外部类名.内部类名 变量名 = 外部类对象.内部类对象;
Outer.Inner in = new Outer().new Inner();
2,当内部类在成员位置上,就可以被成员修饰符所修饰。
比如,private:将内部类在外部类中进行封装。
static:内部类就具备static的特性。
当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限。
在外部其他类中,如何直接访问static内部类的非静态成员呢?
new Outer.Inner().function();
在外部其他类中,如何直接访问static内部类的静态成员呢?
Outer.Inner.function();
注意:当内部类中定义了静态成员,该内部类必须是static的。
当外部类中的静态方法访问内部类时,内部类也必须是static的。
当描述事物时,事物的内部还有事物,该事物用内部类来描述。
因为内部事务在使用外部事物的内容。
/*内部类定义在局部时,1,不可以被成员修饰符修饰2,可以直接访问外部类中的成员,因为还持有外部类中的引用。但是不可以访问它所在的局部中的变量。只能访问被final修饰的局部变量。*/class Outer{int x = 3;void method(final int a){final int y = 4;class Inner{void function(){System.out.println(y);}}new Inner().function();}}class InnerClassDemo3{public static void main(String[] args) {Outer out = new Outer();out.method(7);out.method(8);}}
- Java面向对象 Object类 内部类
- 面向对象 object 内部类
- NO8.java笔记【面向对象、抽象类、abstract、接口、interface、多态 、内部类、匿名内部类、异常、Object类】
- Java重修之路(十)面向对象之多态详解,Object类,内部类,匿名内部类详解
- 15 面向对象 抽象类 内部类 Object类
- 黑马程序员--面向对象(接口,内部类,包,Object类)
- 面向对象 Object与内部类
- 12-20java面向对象之Object类&包装类&匿名内部类
- java面向对象内部类
- Java面向对象-内部类
- java面向对象内部类、抽象类、接口类
- 黑马程序员 面向对象 Object与内部类
- JAVA面向对象基础:内部类
- Java面向对象基础--内部类
- Java面向对象高级--匿名内部类
- java面向对象-匿名内部类
- java面向对象(九) 内部类
- Java面向对象 匿名内部类
- Linux-DNS配置 安装oracle11g rac
- hashmap与pojo的组装工具
- 许鹏:从零开始学习,Apache Spark源码走读(一)
- jQuery 中console.log什么意思
- grep查看匹配行的上下行
- Java面向对象 Object类 内部类
- 爱上地方
- Where's Waldorf? - UVa10010 字符串简化处理
- core Animation学习笔记
- 题目1444:More is better
- cocos2dx 事件响应机制 CCNotificationCenter
- MySQL查看和修改表的存储引擎
- PHP 文档学习 - 5 - 类
- appStore上传苹果应用程序软件发布流程