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 和内部类的更多相关文章

  1. 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类

    1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...

  2. java的eclipse操作和常用类Object的使用

    1.eclipse的快捷键: (1)alt + /   内容辅助. 如:main+alt + / 会出现完整的main方法. syso+alt+ / 会输出. 如编写某个方法时,只需写入方法名 + a ...

  3. Java的常用类——Object类、String类

    Java的JDK中提供给我们很多封装好的类就是Java API,可以直接调用. Java 的API(API: Application(应用) Programming(程序) Interface(接口) ...

  4. JAVA 一个特殊的类 Object

    一个特殊的类Object:它是java中所有对象的直接或间接父类,根父类(基类),它里面定义的功能是所有对象都应该具备的(所有的类,都是继承这个类的) 记住:当定义一个新类时,没有指明要继承某类,它默 ...

  5. Scala的类中定义内部类实战

    scala独特之处在于可以在类中定义内部类,起到对外屏蔽作用. 类中默认都是public权限.后面将讲解如何引入接口,scala中的接口与java点区别.特质/接口(Trait)

  6. Day06(类包、内部类)

    在static静态方法中能直接调用的方法只能是静态方法.要想调用其它非静态方法,需要借助对象. 类包:是Java提供的一种管理类文件的机制.可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞 ...

  7. php面向对象 封装继承多态 接口、重载、抽象类、最终类总结

    1.面向对象 封装继承多态  接口.重载.抽象类.最终类 面向对象 封装继承多态  首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一 ...

  8. Java常用类object详解

    1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...

  9. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

随机推荐

  1. windows下安装TensorFlow(CPU版)

    建议先到anaconda官网下载最新windows版的anaconda3.6,然后按步骤进行安装.(这里我就不贴图了,自己下吧) 1.准备安装包 http://www.lfd.uci.edu/~goh ...

  2. my02_Atlas mysql5.7安装配置

    软件环境:centos7.3,glib-2.49,lua5.1,Atlas2.2.1,mysql5.7 依赖包安装******************************************* ...

  3. 电感的Q值

    电感的Q值又称为品质因数,即在通过一定频率信号时,感抗与等效损耗之比.品质因数越高即系统损耗越小效率越高,一般为50`100,最高500左右,再大就会烧毁.一般Q值与很多因素有关:绕线粗细,长度与直径 ...

  4. maya2018无法安装卸载激活失败

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  5. 性能测试工具LoadRunner21-LR之Controller 常用函数

    1.事务函数: Lr_start_transaction();  //标记事务的开始 Lr_end_transaction();  //标记事务的结束,一般情况下,事务开始与结束联合使用 Lr_get ...

  6. instancemethod, staticmethod, classmethod & abstractmethod

    实例方法.静态方法.类方法.抽象方法 1.  Python中方法的工作方式(How methods work in Python) A method is a function that is sto ...

  7. Kudu的架构

    不多说,直接上干货!  Kudu的架构 1.kudu的 基本框架 Kudu 是用于存储结构化( structured )的表( Table ).表有预定义的带类型的列( Columns ),每张表有一 ...

  8. pat1089. Insert or Merge (25)

    1089. Insert or Merge (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Accor ...

  9. JEECMS站群管理系统-- 自定义标签及使用自己创建的表的实现过程

    下面是我自己定义的标签mycontent_list 首先,在数据库里创建了一个jc_mycontent的表,其中有id,title,content三个字段 其次,创建了一个实体类 public cla ...

  10. hash冲突解决和javahash冲突解决

    其实就是四种方法的演变 1.开放定址法 具体就是把数据的标志等的对长度取模 有三种不同的取模 线性探测再散列 给数据的标志加增量,取模 平方探测再散列 给数据的标志平方,取模 随机探测再散列 把数据的 ...