Java习题解析.

Slides:



Advertisements
Similar presentations
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Advertisements

多元評量與 Greenfoot 簡介 南港高中高慧君. 演講大綱 多元評量 高中階段程式設計教學目標與困境 Greenfoot 快速入門 – 袋熊吃樹葉 – 沙灘螃蟹 Greenfoot 臺灣社群介紹 2.
系統分析與設計 楊子青 H-1 H 、物件導向技術 n 物件導向的基本概念 – 物件、類別 – 封裝、繼承 – 同名異式 ( 多型 ) 、超荷 ( 過載 ) n 物件導向分析與設計及塑模工具 n UML 塑模工具.
第3章 使用类和对象编程 软 件 学 院 朱士明 副教授.
第四章 类、对象和接口.
第三讲 面向对象(上).
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
面向对象的程序设计(一).
第一章 面向对象程序设计.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
類別與物件 Class & Object.
Ch07 介面與多重繼承 物件導向程式設計(II).
第10讲 Java面向对象编程基础(4) 教学目标 主要内容.
第三章 控制结构.
Ch08 巢狀類別 物件導向程式設計(II).
程式設計實作.
第5章 异常处理 王德俊 上海交通大学继续教育学院.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
Java语言程序设计 清华大学出版社 第9章 网络通信.
H、物件導向技術 物件導向的基本概念 物件、類別 封裝、繼承 同名異式(多型) 、超荷(過載) 物件導向分析與設計及塑模工具 UML塑模工具.
例外處理(Exception Handling)
Java语言程序设计 第七部分 多线程.
Java基础 JavaSE异常.
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
第六章 类的扩展与继承.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第五章 继承、接口与范型.
程式設計實作.
Java语言程序设计 第五部分 Java异常处理.
Java程序设计 第9章 继承和多态.
辅导课程六.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
异常及处理.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
* 單元:電腦與問題解決 主題:Java物件導向程式設計-類別與物件 台南縣國立善化高中 蕭嘉民 老師
4.2通讯服务模块线程之间传递信息 信息工程系 向模军 Tel: QQ:
Multithread 多執行緒 以GUI為例了解物件以及Event
JAVA 编 程 技 术 主编 贾振华 2010年1月.
$9 泛型基础.
第7章 异常处理.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
本节内容 类成员的访问控制 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 Java语法基础.
第二章 Java基本语法 讲师:复凡.
辅导课程十五.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
第6章 继承和多态 伍孝金
Summary
Presentation transcript:

Java习题解析

1、Java的变量 Java中变量分为三类:局部变量、实例变量、类变量,如下程序所示: public class Variable { static int allClicks = 0; //类变量 String str = “Hello”; //类的实例变量 public void method() { int i = 0; //类的局部变量 } } 类变量的定义前加有static,这表示它是一个静态变量,因此类的多个实例共用一个类变量。 实例变量定义在类的起始位置,每一个类的实例对象都独自拥有一份实例变量的拷贝。 局部变量的有效范围在程序块中。

分析下面的代码,编译是否通过,若编译通过输出结果是什么? public class StaticDemo extends Thread{ static int total = 100; int num; public StaticDemo(int num){ this.num=num; } public void run() { try{ sleep(num); total=total+num; System.out.println(total); catch(Exception e){ System.out.println("EXCEPTION!"); public static void main(String[] args) { StaticDemo t1 = new StaticDemo(2000); StaticDemo t2 = new StaticDemo(1000); t1.start(); t2.start();

2、自定义异常类 import javax.swing.*; class MyException { void count(int year){ try{ if(2007-year-16<4&&2007-year-16>=0){ System.out.println("您的保险费用为1000元!"); } else if(2007-year-16<0)throw new userexception("您的年龄太小了,请在父母指导下购买"); "); else { System.out.println("您必须支付保险费600元"); }catch(userexception k){ System.out.println(k.toString());

public static void main(String agrs[]){ try{ int year=Integer.parseInt(JOptionPane.showInputDialog(null,"请输入出生年份")); MyException t1=new MyException(); t1.count(year); }catch(java.lang.NumberFormatException e){ System.out.println("您好!错误的输入格式:"+e.toString()); } class userexception extends Exception{ userexception(){} userexception(String str){ super(str);

3、内部类特性 内部类的类名只用于定义它的类或语句块之内,在外部引用它时必须给出带有外部类名的完整名称,并且内部类的名字不允许与外部包类的名字相同。 内部类可以访问外部类的static或实例成员变量 内部类可以在成员方法中定义,该成员方法的局部变量及参数必须是final的才能被该内部类使用 内部类可以是抽象类或接口,若是接口,则可以由其它内部类实现

3、内部类特性(续) 内部类可以被声明为static(普通类则不可以),这样的内部类变成顶层类,相当于把它放到外面,不再是嵌套的内部类。 只有顶层类可以声明static成员,如果内部类需要定义static成员,则该内部类必须声明为static。

内部类访问外包类成员 public class Outer{ private int size; /** 定义内部类Inner */ public class Inner{ //将外包类的成员变量size递增 public void doStuff(){ size++; } Inner i=new Inner(); //成员变量i指向Inner类的对象 public void increaseSize(){ i.doStuff(); //调用内部类Inner的方法 public static void main(String[] a){ Outer o=new Outer(); for (int i = 0; i<4; i++){ o.increaseSize(); System.out.println("The value of size : "+o.size);

内部类中加上修饰符访问同名外部包类成员 public class Outer{ private int size; /** 定义内部类Inner */ public class Inner{ public void doStuff(int size){ size++; //存取局部变量 this.size++; //存取内部类的成员变量 Outer.this.size++; //存取其外包类Outer的成员变量 System.out.println("size in Inner.doStuff(): "+size); System.out.println("size of the Inner class: "+this.size); System.out.println("size of the Outer class: "+Outer.this.size); } Inner i=new Inner(); //成员变量i指向Inner类的对象 public void increaseSize(int s){ i.doStuff(s); //调用内部类Inner的方法 public static void main(String[] a){ Outer o=new Outer(); o.increaseSize(10);

在外包类的语句块中定义内部类 class Outer{ private int size=5; /** 方法makeInner(),返回一内部类对象 */ public Object makeInner(final int finalLocalVar){ int LocalVar=6; class Inner{ public String toString(){ return ("#<Inner size="+size+ " finalLocalVar="+finalLocalVar+">"); } return new Inner(); //方法makeInner()返回一内部类对象 public static void main(String[] args){ Outer outer=new Outer (); Object obj=outer.makeInner(40); System.out.println("The object is "+obj.toString());

在外包类的其它类中访问内部类 class Outer{ private int size; class Inner{ void doStuff(){ size++; System.out.println("The size value of the Outer class: "+size); } public class TestInner{ public static void main(String[] a){ Outer out=new Outer(); Outer.Inner in=new out.Inner(); in.doStuff();