间歇性混吃等死,持续性踌躇满志系列-------------第3天

1、局部内部类

局部内部类是指在类的方法中定义的内部类,它的作用范围也是在这个方法体内。

 class SellOutClass{
private String name; //私有成员变量
public SellOutClass(){
name = "苹果"; //构造方法
}
public void sell(int price){
class Apple{ //局部内部类
int innerPrice = 0;
public Apple(int price){ //构造方法
innerPrice = price;
}
public void price(){ //方法
System.out.println("现在开始销售"+name);
System.out.println("单价为:"+innerPrice+"元");
}
}
Apple apple = new Apple(price); //实例化Apple类的对象
apple.price(); //调用局部内部类的方法
}
public static void main(String[] args){
//实例化SellOutClass类的对象
SellOutClass sample = new SellOutClass();
//调用SellOutClass类的sell()方法
sample.sell(200);
}
}

运行结果图

2、匿名内部类

由于匿名内部类没有名称,所以你匿名内部类使用默认构造方法来生成匿名内部类的对象,在匿名内部类定义结束后,需要加分号标识,这个分号并不代表定义内部类结束的标识,而代表创建匿名内部类的引用表达式的标识。

语法格式:

return new A(){

  ...//内部类体

}

例:在main()方法中编写匿名内部类去除字符串中的全部空格

 public class OutString{
public static void main(String[] args){
final String sourceStr = "福 建 省 后 天 科 技有限公司";
//编写匿名内部类
IStringDear s = new IStringDear(){
public String filterBlankChar(){
String convertStr = sourceStr;
//替换全部空格
convertStr = convertStr.replaceAll(" ","");
//返回转换后的字符串
return convertStr;
}
};
//输出源字符串
System.out.println("源字符串:"+sourceStr);
//输出转换后的字符串
System.out.println("转换后的字符串:"+s.filterBlankChar());
}
}
interface IStringDear{
//声明过滤字符串中的空格的方法
public String filterBlankChar();
}

运行结果图

3、在静态内部类中定义主方法,并访问内部类中的方法

 public class OutString{
static int x = 1000;
static class Inner{
static void doitInner(){
//调用外部类的成员变量X
System.out.println("外部类的成员变量"+x);
}
//定义主方法
public static void main(String[] args){
//访问内部类的方法
doitInner();
}
}
}

运行结果图

4、标准的switch语句

注:多个case后面的数值不可以重复;

switch后面的小括号只能是下列的数据类型:

基本数据类型(byte/short/char/int)

引用数据类型 (String字符串/enum枚举);

swith语句格式可以很灵活,前后顺序可以颠倒,而且break语句还可以省略。匹配哪一个case就从哪一个位置向下执行。直到遇到break或者整体结束为止。

 public class Demo01{
public static void main(String[] args){
int num = 2;
switch (num){
case 1:
System.out.println("一");
break;
case 2:
System.out.println("二");
break;
case 3:
System.out.println("三");
break;
case 4:
System.out.println("四");
break;
default:
System.out.println("十");
//最后一个break语句可以省略
break;
}
}
}

运行结果图

JAVA进阶3的更多相关文章

  1. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  2. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...

  3. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  4. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

  5. 当我们说线程安全时,到底在说什么——Java进阶系列(二)

    原创文章,同步发自作者个人博客,转载请以超链接形式在文章开头处注明出处http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数 ...

  6. Java进阶03 IO基础

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...

  7. Java进阶01 String类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...

  8. 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)

    本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...

  9. Java进阶(七)正确理解Thread Local的原理与适用场景

    原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

  10. Java进阶(四十七)Socket通信

    Java进阶(四十七)Socket通信   今天讲解一个 Hello Word 级别的 Java Socket 通信的例子.具体通讯过程如下: 先启动Server端,进入一个死循环以便一直监听某端口是 ...

随机推荐

  1. Day5--Python--字典

    字典1.什么是字典 dict. 以{}表示,每一项用逗号隔开,内部元素用key:value的形式来保存数据 {'jj':'林俊杰','jay':'周杰伦'} 查询效率非常高,通过key来查找元素 内部 ...

  2. 3 字节的 UTF-8 序列的字节 2 无效

    由于目前写完了[消息队列]模块,想做个单元测试,所以就利用spring的import标签,将mq的配置文件加入了配置.结果出现了<3 字节的 UTF-8 序列的字节 2 无效>这个问题. ...

  3. KMP之计算Next数组

    KMP的Next数组:模式串的前缀与后缀的“相交”长度 KMP算法步骤: 1.先算next数组 2.若失配(此时模式串下标为j),利用Next数组求出失配后滑动的新位置 a.Next[j] \geq ...

  4. centos7 mysql-server 安装过程

    官网下载安装mysql-server # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -i ...

  5. 简单贪心) Repair the Wall hdu2124

    Repair the Wall http://acm.hdu.edu.cn/showproblem.php?pid=2124 Time Limit: 5000/1000 MS (Java/Others ...

  6. 数据库连接池 C3p0

    数据库连接池 C3po 1 定义 本质上是个容器(集合) 存放数据库的连接容器(connection 对象) ,当系统初始化以后 容器就会创建 容器中就会申请一些连接对象 ,当用户来访问数据库的时候 ...

  7. E2E测试框架

    1. 目前E2E测试工具有哪些? 项目 Web Star puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 41427 nightma ...

  8. C# enum、int、string三种类型互相转换

    enum.int.string三种类型之间的互转 #代码: public enum Sex { Man=, Woman= } public static void enumConvert() { in ...

  9. SQL Server没有足够的内存继续执行程序

    有一个表的数据特别大,我点击生成脚本的时候,喜欢新建窗口,但是不行,数据量太大了,所以选择保存文件,保存到本地了.然后我点击执行,又报没有内存去执行...还是因为数据量太大了 解决办法,使用sqlcm ...

  10. linux安装Subversion版本控制工具(Subversion + Apache + jsvnadmin)

    操作系统:Centos 6.7 集成环境服务器:10.0.210.112 操作用户:root 建议安装前更新操作系统 # yum update 更新完成后重启 # reboot 1: 安装 Apach ...