// 练习一: 写出程序结果
interface A{}
class B implements A
{
public String func()
{
return "func";
}
}
class Demo
{
public static void main (String[] args)
{
A a = new B();
System.out.println(a.func()); //多态, 对于非静态方法, 编译看左边,运行看右边
// 编译失败, 因为 a 所属的 A 接口中没有定义 func 方法
}
} // 练习二: 写出程序结果
class Fu
{
boolean show(char a)
{
System.out.println(a);
return true;
}
} class Demo extends Fu
{
public static void main(String[] args)
{
int i = 0;
Fu f = new Demo();
Demo d = new Demo();
for(f.show('A'); f.show('B')&&(i<2); f.show('C')) // 条件为假, for 循环不运行
{
i++;
d.show('D');
}
}
boolean show(char a)
{
System.out.println(a);
return false;
}
}
// 结果: A B // 练习三: 写出程序结果
interface A{}
class B implements A
{
public String test()
{
return "yes";
}
}
class Demo
{
static A get()
{
return new B();
}
public static void main(String[] args)
{
A a = get(); // 相当于 A a = new B();
System.out.println(a.test()); // 编译失败, A 接口中没有定义 test() 方法
}
}
// 练习四: 写出程序结果
class Super
{
int i = 0;
public Super(String a) // 带参数构造函数
{
System.out.println("A");
i = 1;
}
public Super() // 空参数构造函数
{
System.out.println("B");
i += 2;
}
} class Demo extends Super
{
public Demo(String s) // 带参数构造函数
{
System.out.println("C");
i += 5; // 子类中没有定义 i, 直接访问父类的 i
}
public static void main(String[] args)
{
int i = 4;
Super d = new Demo("A");
System.out.println(d.i);
}
}
// 输出结果: B C 7 // 练习五: 补足代码, 调用两个函数, 要求用匿名内部类
interface Inter
{
void show(int a, int b);
void func();
} class Demo
{
public static void main(String[] args)
{
// 补足代码, 调用两个函数, 要求用匿名内部类
Inter in = new Inter()
{
public viod show(int a, int b)
{}
public void func()
{}
}; // 多态 in.show(3,4);
in.func();
}
} // 练习六: 写出错误答案错误的原因, 用单行注释的方式
class Demo
{
int show(int a, int b){return 0;}
}
下面哪些函数可以存在于 Demo 的子类中
A. public int show(int a, int b){return 0;} // 可以, 函数覆盖
B. private int show(int a, int b){return 0;} // 不可以, 权限不够
C. private int show(int a, long b){return 0;} // 可以, 子类特有方法
D. public short show(int a, int b){return 0;} // 不可以, 调用的不确定性
E. static int show(int a, int b){return 0;} // 不可以, 静态只能覆盖静态 // 练习七:
interface A
{
void show();
}
interface B
{
void add(int a, int b);
}
class C implements A,B
{
// 程序代码
private int x, y;
public void add(int x, int y)
{
this.x = x; // 将局部变量x, y 存储到堆内存中
this.y = y;
} public void show()
{
System.out.println(this.x + this.y); //调用堆内存中的变量
}
} class D
{
public static void main(String[] args)
{
C c = new C();
c.add(4,2);
c.show(); // 通过该函数打印以上两个数的和
}
} // 练习八: 写出程序结果
class Demo
{
public static void main(String[] args)
{
try
{
showExe();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("B");
}
finally
{
System.out.println("C");
}
System.out.println("D"); // 异常已经被解决, 最后肯定会输出 D
}
public static void showExe()throws Exception
{
throw new Exception();
}
}
// 结果: B C D // 练习九: 写出程序结果
class Super
{
int i = 0;
public Super(String s)
{
i = 1;
}
}
class Demo extends Super
{
public Demo(String s)
{
i = 2;
}
public static void main(String[] args)
{
Demo d = new Demo("yes"); // 父类中没有空参数构造函数, 编译失败
System.out.println(d.i);
}
} class Super
{
int i = 0;
public Super()
{
i = 1;
}
public Super(String s)
{
i = 1;
}
}
class Demo extends Super
{
public Demo(String s)
{
i = 2;
}
public static void main(String[] args)
{
Super d = new Demo("yes");
System.out.println(d.i); //此时,结果为 2
}
} // 练习十: 写出程序结果
class Demo
{
public static void func()
{
try
{
throw new Exception();
System.out.println("A"); // 该条语句无法被执行, 废话! 编译失败
}
catch(Exception e)
{
System.out.println("B");
}
} public static void main(String[] args)
{
try
{
func();
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
} // 练习十一:
class Demo
{
public void func()
{
// 位置一
} class Inner{} public static void main(String[] args)
{
Demo d = new Demo();
// 位置二
}
}
A. 在位置1 写 new Inner(); // 可以
B. 在位置2 写 new Inner(); // 不可以, 因为主函数是静态的, 只能调用静态成员, 所以内部类也必须是 static 的
C. 在位置2 写 new d.Inner(); // new new Demo().Inner(); 格式错误, 正确格式: new Demo().new Inner();
D. 在位置2 写 new Demo.Inner(); // 格式正确, 但是 Inner 必须是静态的. // 练习十二: 写出程序结果
class Test
{
public static String output="";
public static void foo(int i)
{
try
{
if(i==1)
throw new Exception();
output += "1";
}
catch(Exception e)
{
output += "2";
return;
}
finally
{
output += "3";
}
output += "4";
}
public static void main(String[] args)
{
foo(0);
System.out.println(output); // 134 , 注意是字符串
foo(1);
System.out.println(output); // 13423, output 是静态全局变量
}
}

_参考资料_
- [JavaSE 基础视频](https://www.bilibili.com/video/av3101108/#page=5)

Java 之综合练习的更多相关文章

  1. java设计模式综合项目实战视频教程

    java设计模式综合项目实战视频教程 视频课程目录如下: 第01节课:本课程整体内容介绍:X-gen系统概况,包括:引入.X-gen项目背景.X-gen的HelloWorld第02节课:X-gen整体 ...

  2. Java集合类综合

    Java集合类是JDK学习中的一个经典切入点,也是让初学者最初感受到Java魅力的地方之一,你一定不会忘记不需要关心大小的ArrayList,不用自己实现的Queue,和随处可见的HashMap.面试 ...

  3. JavaSE学习总结(十九)—— Java Web 综合应用(JSP、Servlet、IDEA、MySQL、JUnit、AJAX、JSON)

    一.使用Servlet+JDBC+MySQL+IDEA实现商品管理 1.1.创建项目 打开IntelliJ IDEA开发工具.点击Create New Project创建一个新的Web项目 选择Jav ...

  4. 【JAVA正则表达式综合练习】

    一.治疗口吃. 将字符串“我我我我我我我..........我.......要要要要要..................要要要要...学习习习习.......习习习习习习习习编程程程程程程..... ...

  5. 【转载】JAVA中综合接口和抽象类实现的一种“抽象接口”

    Muscleape个人总结:(这里的抽象接口是指:使用一个抽象类实现一个接口,是两部分结构) 使用一个抽象类直接实现接口,将接口中的方法区分为实现类必须要实现的和选择性实现的,其他需要实现接口的类型通 ...

  6. java 内省综合案例和Beanutils工具包

    演示用eclipse自动生成 ReflectPoint类的setter和getter方法. 直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用 ...

  7. java web综合案例

    1.采用的技术: bootstrap+jsp+servlet+三层架构(servlet,service,dao)+mysql 注意:mysql使用的是5.5版本,使用高版本会有很多问题.可以将5.5版 ...

  8. Java基础学习笔记二十八 管家婆综合项目

    本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...

  9. 【Java】集合综合案例 - 播放器管理

    集合综合案例 文章目录 集合综合案例 需求分析 项目演示 详细设计 代码实现 歌曲类 播放器类 播放列表类 测试 参考资料 播放器管理 需求分析 项目演示 详细设计 代码实现 重新搞一波 复习巩固 简 ...

随机推荐

  1. Atitit. html 使用js显示本地图片的设计方案.doc

    Atitit. html 使用js显示本地图片的设计方案.doc 1.  Local mode  是可以的..web模式走有的不能兰.1 2. IE8.0 显示本地图片 img.src=本地图片路径无 ...

  2. Node.js 配置Nginx

    1.修改nginx.conf upstream nodejs { server 127.0.0.1:3000; #server 127.0.0.1:3001; keepalive 64; } serv ...

  3. Model Binding is not working. MVC3 视图模型绑定不成功

    问题出现在POST方法中,当我要将数据提交到后台的时候,绑定的变量值为null 原因是视图中的名称跟Controller中的视图的名称不一致造成的. 假如你视图中的Model采用的是Html.Labe ...

  4. zookeeper安装与集群搭建

    此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...

  5. nginx调用php-fpm出错解决方法和nginx配置详解

    装完了nginx和php-5.5,配置好了nginx调用php后,就开始启动php-fpm. 使用下面的命令 复制代码 代码如下: /usr/local/php/sbin/php-fpm 就可以启动了 ...

  6. ZoneDateTime 转换Date

    final ZonedDateTime now = ZonedDateTime.now(); //当前时间final ZonedDateTime todayZero = now.truncatedTo ...

  7. Aop检查Session,全局过滤器和No全局过滤器

    全局过滤器: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  8. mysq for visual studio 1.1.1

    https://cdn.mysql.com/Downloads/MySQLInstaller/mysql-visualstudio-plugin-1.1.1.msi

  9. ChemDraw绘制DNA结构的技巧

    对生物有一定了解的朋友都知道DNA是染色体的重要组成部分,DNA结构中包含重要的遗传物质,孩子的DNA来自父母DNA的组合,这就是为什么“一家人相像”的奥秘所在.ChemDraw虽然号称是化学结构绘制 ...

  10. 浅析Java与C#的事件处理机制

    http://www.cnblogs.com/OOAbooke/archive/2012/02/18/2356899.html