一般类,抽象类,接口的使用场景:
类;共同的特征和行为的抽取和封装
接口:标准,规范(功能的扩展)
        需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口
 
内部类:
 
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. Swift3.0P1 语法指南——属性

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  2. nth-of-type

    ul li{ height:53px; line-height:53px; border-top:1px solid #e5e5e5;  display:block;color:#444;     } ...

  3. 从jquery里的$.ajax()到angularjs的$http

    jquery中对ajax的使用做了很多封装,使得我们使用习惯了,反而并不大清楚在请求过程中的一些细节. 在第一次使用angularjs的$http时,后台一直接受不到前端请求的数据,于是小小研究了一下 ...

  4. Python~~~关键字~~~

    https://docs.python.org/2.7/library/index.html # -*- coding: UTF-8 -*- 缩进indent raw_input tuple()   ...

  5. 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题

    一.问题描述 UITableView分割线要显示到最左端 查看UITableView的属性,发现设置separatorInset的值可以自定义分割线的位置. @property (nonatomic) ...

  6. iOS中关于NavigationController中preferredStatusBarStyle一直不执行的问题

    重点:真的能改吗?跑起来毛用没有. 1.还要在plist文件里把View controller-based status bar appearance设置成YES. 2.一定要写UINavigatio ...

  7. java中集合的使用

    集合使用: 先说数组:array :用来存同一种数组类型的容器 eg:现在想把班上所有人的信息存起来 1.每一个人的信息可以用一个对象存起来 2.可以用一个数组来接受(现在数组中要接受的是对象) ob ...

  8. ASP.NET知识总结(2.对比Get和Post提交方式)

    2.对比Get和Post提交方式 get:<1>在地址栏中通过?key1=value1&key2=value2...的方式传值 <2>传递的数据用户可以直接在url中看 ...

  9. 如何持续集成/交付一个开源.NET函数库到Nuget.org

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这是一个简单的入门向导,涉及到GitHub.AppVeyor和Nuget.org. 最 ...

  10. [译]:Orchard入门——给网站添加页面

    原文链接:Adding Pages to Your Site 注:内容为官方文档翻译,本人遇到的page中间是布局,而非官网的body--但此内容可以在内容定义里自行修改(本文不做介绍) 在创建Orc ...