最终类object 和内部类
Object 类
性质:【1】是所有类的根类。
【2】如果一个类没有显示继承另外一个类,那么该类一定继承于Object
toString() 返回对象的字符串表示形式
特殊:【1】输出对象时,默认调用toString方法,返回类型@内存地址
Object obj = new Object();
// 输出对象时,默认调用toString方法
System.out.println(obj.toString);
equals(Object obj) 用于判断两个对象是否相等。
【1】== 比较两个对象的内存地址或基本数据类型的比较,
【2】object默认equals实现比较内存地址。
【3】当自定义对象时,要比较自定义对象是否相等,就必须通过equals方法比较两个对象属性值是否相等,那就必须重写Object的equals方法。
快捷方法

内部类
在java中,一个文件可以定义多个类,文件名必须和public 类型的类的类名保持一致。编译后 out$info
在java中,一个类也可以定义在一个类的内部,定义在内部的类称为内部类(inner class),定义在外部的类称为外部类(out class).
特性:内部类可以拥有属性和方法和构造器和块 一般而言,内部类都用默认修饰符
[1]内部类如何创建对象
外部类 . 内部类 引用 = new 外部类() . new 内部类();
或者先创建一个外部类
外部类 外部类的引用 = new 外部类 ();
内部类 引用 = 外部类的引用 . new 内部类();
[2] 内部类中可以访问外部类的私有变量
public class Outer {
private String name = "Outer";
class Inner{
public void showInfo() {
//访问外部私有变量
System.out.println(name);
}
}
}
特殊情况:外部类和内部类的普通变量同名
class Inner{
private String name = "Inner";
public void showInfo() {
String name = "show info";
// 访问内部类的私有成员
System.out.println(this.name);
// 访问外部类的私有成员
System.out.println(Outer.this.name);
}
}
}
【1】 静态内部类创建对象
Inner inner = new Outer.Inner(); inner.showInfo();
【2】静态内部类可以访问外部类的(私有)静态成员
注意【1】静态内部类访问外部普通成员(非静态成员),需要创建外部一个对象才能访问成员
【2】特殊情况内部类和外部类定义静态变量名称相同
外部类.属性
//内部类访问
内部类.属性
this.属性
方法内部类
定义到一个方法中,成为方法内部类
【1】 方法的局部变量进入方法内部类时,被加final修饰。出了方法内部类后,final被去掉。
【2】方法内部类拥有属性和方法和构造器和块 一般而言,方法内部类都用默认修饰符
匿名内部类
意义:只使用一次,我们可以把类声明为匿名类。匿名类一般和内部类结合使用,形成匿名内部类
// 方法内部类
/*class Inner implements MyInterface{ @Override
public void showInfo() {
System.out.println("Inner:showInfo");
} }*/ /*Inner inner = new Inner();
inner.showInfo();*/ // new Inner().showInfo(); // 匿名内部类
new MyInterface(){
@Override
public void showInfo() {
System.out.println("Inner:showInfo");
}
}.showInfo();
最终类object 和内部类的更多相关文章
- 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类
1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...
- java的eclipse操作和常用类Object的使用
1.eclipse的快捷键: (1)alt + / 内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...
- Java的常用类——Object类、String类
Java的JDK中提供给我们很多封装好的类就是Java API,可以直接调用. Java 的API(API: Application(应用) Programming(程序) Interface(接口) ...
- JAVA 一个特殊的类 Object
一个特殊的类Object:它是java中所有对象的直接或间接父类,根父类(基类),它里面定义的功能是所有对象都应该具备的(所有的类,都是继承这个类的) 记住:当定义一个新类时,没有指明要继承某类,它默 ...
- Scala的类中定义内部类实战
scala独特之处在于可以在类中定义内部类,起到对外屏蔽作用. 类中默认都是public权限.后面将讲解如何引入接口,scala中的接口与java点区别.特质/接口(Trait)
- Day06(类包、内部类)
在static静态方法中能直接调用的方法只能是静态方法.要想调用其它非静态方法,需要借助对象. 类包:是Java提供的一种管理类文件的机制.可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞 ...
- php面向对象 封装继承多态 接口、重载、抽象类、最终类总结
1.面向对象 封装继承多态 接口.重载.抽象类.最终类 面向对象 封装继承多态 首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...
- Java常用类object详解
1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...
- python 类(object)的内置函数
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...
随机推荐
- ettercap局域网DNS欺骗实现过程
转载:https://www.cnblogs.com/hkleak/p/5043063.html 笔记一:ettercap是什么? 我们在对WEB安全检测的时候都会用到Cain和netfuke这两款工 ...
- sf03_杨辉三角go实现
package main import "fmt" /* 变量规范 全局变量以v_为前缀 函数形参以p_为前缀 函数内部变量,字母数字下划线等普通组合,其中函数返回值以out_为前 ...
- Vue.js-----轻量高效的MVVM框架(四、指令)
Vue指令 指令 (Directives) 是特殊的带有前缀 v- 的特性.指令的值限定为绑定表达式,因此上面提到的 JavaScript 表达式及过滤器规则在这里也适用.指令的职责就是当其表达式的值 ...
- spring AOP注解
此段小代码演示了spring aop中@Around @Before @After三个注解的区别@Before是在所拦截方法执行之前执行一段逻辑.@After 是在所拦截方法执行之后执行一段逻辑.@A ...
- 解决“<form>提交,CSRF验证失败。请求中止”
在相应的提交页面,内,添加"{%csrf_token%} ",如: Django工程的app文件的views.py添加屏蔽装饰器,(相应的函数上): from django.vie ...
- git使用笔记-提高篇-重置揭密
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E7%BD%AE%E6%8F%AD%E5%AF%86 重置揭密 在继续了 ...
- 牛客网Java刷题知识点之字节流练习之从A处复制文本文件到B处(FileReader、FileWriter )、复制文本文件的原理图解
不多说,直接上干货! CopyTextTest.java package zhouls.bigdata.DataFeatureSelection.test; import java.io.FileRe ...
- DEDE日期调用小插件
在日期文本框里面,点击的时候,下面出来一个和万年历一样的日期选择表,在dede里面,有一个现成的js小插件,直接调用就OK了... <input type="text" on ...
- Qt 学习
Qt 学习 C++ 模版 QObject 提供一个十分有用的 api,T findChild(QString, Qt::FindChildOptions),这个函数接收一个模版参数,返回模版参数的类型 ...
- HDU 1281——棋盘游戏——————【最大匹配、枚举删点、邻接表方式】
棋盘游戏 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...