间歇性混吃等死,持续性踌躇满志系列-------------第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. react-native中timer的注意点

    务必在卸载组件前清除定时器! 我们发现很多 React Native 应用发生致命错误(闪退)是与计时器有关.具体来说,是在某个组件被卸载(unmount)之后,计时器却仍然在运行.要解决这个问题,只 ...

  2. Vue+koa2开发一款全栈小程序(3.vue入门、Mpvue入门)

    1.Vue-cli 1.新建一个vue项目 打开cmd 官方命令行工具 npm install -g vue-cli //安装脚手架 cd到你想要存放demo的目录下,然后 vue init webp ...

  3. app软件遵循的规范

    http://www.jianshu.com/p/a2a4c18c1900 https://wenku.baidu.com/view/ecb09b07a4e9856a561252d380eb6294d ...

  4. 关于串session

    关于session: 最近在用IE浏览器调试不同用户所拥有的权限功能,出现了串session.串session,主要的流程结构如下: 解决方法: 在IE快捷方式上点击鼠标右键>属性>快捷方 ...

  5. mysql同步复制异常的常见操作-传统复制方式

    mysql同步复制异常的常见操作-传统复制方式 一.传统复制方式是基于非gtid的,常见的错误有1032和1062 1032是主键冲突,1062是从库中没有找到对应的记录. 可以查看出现错误的binl ...

  6. data_type

    import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) ...

  7. python机器学习-sklearn挖掘乳腺癌细胞(一)

    python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...

  8. 【openssl】利用openssl完成X509证书和PFX证书之间的互转

    利用openssl完成X509证书和PFX证书之间的互转 # OpenSSL的下载与安装: 1.下载地址: 官方网址—— https://www.openssl.org/source/ OpenSSL ...

  9. 面向对象【day08】:动态导入模块(八)

    本节内容 1.概述 2.知识回顾 3.动态导入模块 一.概述 我们之前导入模块都是用import,或者from ... import ....这种模式去导入模块,那如果我们如何实现只用字符串就可以导入 ...

  10. Spring Boot笔记七:扩展Spring MVC

    新建一个类,继承WebMvcConfigurerAdapter package com.vae.springboot.config; import org.springframework.contex ...