一般类,抽象类,接口的使用场景:
类;共同的特征和行为的抽取和封装
接口:标准,规范(功能的扩展)
        需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口
 
内部类:
 
1.成员内部类:
该类与外部类的属性和方法平级
Outer outer =new Outer();
outer.show();
//创建内部类的实例
Outer.Inner inner=outer.new Inner();
//实例.new方法
inner.showInner();
创建成员内部类的对象:
外部类类名.内部类类名 对象名= 外部类对象.new 内部类对象; 
 外部类.this:表示访问与内部类同名的外部类属性
 
2.局部内部类;
作用域:所在的方法体
局部变量不能用可见性修饰符修饰(类体里面可以)
局部变量是常量,用final修饰
 
3.静态内部类:
该类与外部类的静态属性和静态方法平级
访问权限修饰符 static class 内部类名{}
 
4:匿名内部类:
应用场景:Button按钮的事件监听
定义在外部类中,没有名字且只会被使用一次的内部类
访问权限修饰符 class 外部类{
属性和方法
写法一: 属性//接口
访问权限修饰符 接口类型 属性名 =new 接口类型(){
//类体
};
 
方法二: 方法体中
访问权限修饰符 返回值类型 方法名(形参){
 //局部变量可以使用匿名内部类
new 接口类型(){
 //类体
}.接口中的方法();
//或者是:
接口类型 局部变量=new 接口类型(){
//类体
};
}
}
 
写法一:new了一个实现类的实例,创建接口的引用对象
Inter a=new Inter(){public void show(){}};//接口不能单独new,所以new一个实现类的实例
 
写法二:
外部类:public void display(){new Intera(){public void show(){} };
intera2.show(); //调用类体里面的方法
外部类的实例调用这个方法
}
 
写法三:intera2.show();.show() //实例点方法
 
匿名内部类除了接口外,还能用抽象类,普通类;来写
匿名内部类继承了抽象类,该匿名类体中可以不重写
普通类:new的是普通类匿名的子类的实例
private Common c=new Common(){public void show(){} };
//匿名内部咧可以书写特有的方法,但是永远不会调用
 
 
匿名内部类的特点:
1.只使用一次,定义在外部类的属性部分或者方法体部分
2.可实现java语言的多继承(类都是单继承;内部类实现多继承,外部类可以继承一个类,内部类也可以继承,变象用内部类实现"多继承";)
3.从语法角度,类可以书写任意层数的类,没有限制(一般不超过两层)
4.内部可以写接口
 
除了匿名内部类之外,其余的内部类,怎么判断源文件生成的多少字节码文件: 根据class的个数
 

java类,接口浅谈的更多相关文章

  1. Java基础之浅谈接口

    前言 前几篇文章我们已经把Java的封装.继承.多态学习完了,现在我们开始比较便于我们实际操作的学习,虽然它也是Java基础部分,但是其实入门容易,精通很难. 我认真的给大家整理了一下这些必须学会.了 ...

  2. java反射机制浅谈

    一.Java的反射机制浅谈 最近研究java研究得很给力,主要以看博文为学习方式.以下是我对java的反射机制所产生的一些感悟,希望各位童鞋看到失误之处不吝指出.受到各位指教之处,如若让小生好好感动, ...

  3. Java spi机制浅谈

    最近看到公司的一些框架和之前看到的开源的一些框架的一些服务发现和接入都采用了java的spi机制. 所以简单的总结下java spi机制的思想. 我们系统里抽象的各个模块,往往有很多不同的实现方案,比 ...

  4. 【Java基础】浅谈常见设计模式

    Num1:单例模式 基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 常见写法: 懒汉式 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值 ...

  5. Java类/接口的API

    本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,异常, Object类 public String toString(): [把一个对象的信息用 ...

  6. Java学习笔记(8)---Scanner类,浅谈继承

    1.Scanner类: a.定义: java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. Scanner s = new Scanner(S ...

  7. php中普通类 接口类 抽象类 浅谈

    一.普通类 1.关键词:class  类名,继承关键字extends 2.继承:只能实现单继承, 3.多态:子类继承可以实现多种功能 4.封装:类有权限机制,私有的只能自己用,受保护的可以被继承,子类 ...

  8. Java基础:浅谈数据输入流/数据输出流《DataInputstream类与DataOutputstream类》

     一.理论概述 数据输入/输出流(DataInputStream类与DataOutputStream类) 允许应用程序以与机器无关的方式从底层输入流中读取基本Java数据类型. 说白了就是,当读取一个 ...

  9. java基础(十七)----- 浅谈Java中的深拷贝和浅拷贝 —— 面试必问

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

随机推荐

  1. Linux C 文件操作,系统调用 -- open()、read() 和 标准I/O库 -- fopen()、fread()

    函数汇总: open().write().read().close() fopen().fwrite().fread().fclose() 一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件 ...

  2. Caffe学习系列(17): caffe源码分析 vector<Blob<Dtype>*>& bottom(转)

    转自:http://blog.csdn.net/qq_14975217/article/details/51524042 Blob:4个维度 n x c x h x w: bottom[0] .bot ...

  3. div内填内容

    <div contenteditable="true">可以编辑里面的内容</div> 这样就可以使div想textarea一样 可以加入自动换行与over ...

  4. CSS3——transform学习

    CSS动画效果可以使用transform和Animation,前者较简单,先学习前者. transform有几个基本变换,平移.旋转.缩放.扭曲 一.translate平移 有translate2d和 ...

  5. 单词(bzoj 3172)

    Description 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. Input 第一个一个整数N,表示有多少个单词,接下来N ...

  6. Spring中bean的作用域scope详解

    参考文献:http://blog.csdn.net/jacklearntech/article/details/40157861 http://www.cnblogs.com/qq78292959/p ...

  7. vagrant学习笔记

    什么是vagrant简而言之,vagrant就是一个用来管理虚拟机文件的工具为什么要使用vagra如果经常玩虚拟机的话,就会知道,当你需要新建一个虚拟环境的时候,总是要重复的安装操作系统,以及操作系统 ...

  8. windows 10 设置

    精简应用 邮件和日历: Get-AppxPackage *communi* | Remove-AppxPackage 新闻: Get-AppxPackage *bing* | Remove-AppxP ...

  9. 在 windows 环境下安装 redislive

    这是一篇在 windows 环境下安装 redislive 的教程! 项目地址:https://github.com/nkrode/RedisLive 配置文档:http://www.nkrode.c ...

  10. Android常用元件

    本文来源于 http://blog.csdn.net/wxhlinux/article/details/8601170#comments 1.4  Android應用程式元件1.4.1  Activi ...