- 浏览: 341067 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (354)
- 学习 (219)
- 工作 (69)
- 前端技术 (188)
- 个人评论 (1)
- 工作总结 (1)
- 工作的方法 (1)
- 代码库 (1)
- jQuery (63)
- javascript (4)
- css (4)
- 网络通信协议 (3)
- web (7)
- 服务端性能 (1)
- 优化 (1)
- html5 (4)
- serialize (1)
- 上线页面 (1)
- ie6 (6)
- js (1)
- iframe (1)
- flash (1)
- a (1)
- img (1)
- 页面tms的要求 (1)
- kissy (3)
- 需求也页面 (0)
- 需求页面 (2)
- 视频插件 (1)
- 切图片 (1)
- map (1)
- display (1)
- 浮动定位 (1)
- 大小图片的切换功能 (2)
- demo (1)
- margin (1)
- a标签 (1)
- border (1)
- 侧导航 (1)
- 切换PNG格式的css (1)
- padding (1)
- 显示添加和删除 (1)
- 滚动条 (1)
- 和图片处理 (1)
- 移动端 (1)
- 定位 (1)
- 移动端的包的引入作用与直接拨打电话的A标签 (1)
- git (1)
- node.js (1)
- Zepto (1)
最新评论
-
幻紫1992:
还有分页的功能、、(⊙o⊙)嗯
[JS代码库] -
幻紫1992:
就是没有返回顶部的按钮,这个页面、、
[JS代码库] -
幻紫1992:
很受用,O(∩_∩)O谢谢啦~
[JS代码库] -
nlnl520coco:
想下个东西 规则太苛刻了 网站得改进
[JS代码库] -
hxp520520:
new Limiter() 这个对象是kissy API里面的 ...
Limiter的简单demo--20131029
计划
7到12章的复习
7.复用类
8.多态
9.接口
10.内部类
11.持有对象
12.通过异常处理错误
复习结果
复用类
1:类的复用有三种形式 1组合——>即把对象的引用置于新类中
初始化引用的4中方式 1定义对象时初始化(那么其在构造函数调用前已经被初始化)。
2在类的构造体中初始化
3实例初始化
4就是在使用对象前完成初始化——惰性初始化
//包名
package javafuxi2;
/**
* WatreSource()类
* @author xinjie
*
*/
class WatreSource{
//定义私有参数
private String s;
/**
* 构造方法
*/
WatreSource(){
//输出
System.out.println("WatreSource()");
//定义参数
s = "Constructed";
}
/**
* toString()方法
*/
public String toString(){
//返回到s
return s;
}
}
/**
* SprinnklerSystem()类
* @author xinjie
*
*/
public class SprinklerSystem{
//定义私有参数
private String valve1, valve2, valve3, valve4;
//定义私有参数
private WatreSource source = new WatreSource();
//定义私有参数
private int i;
//定义私有参数
private float f;
/**
* toString()方法
*/
public String toString(){
//返回
return
"valve1 = " + valve1 + " " +
"valve2 = " + valve2 + " " +
"valve3 = " + valve3 + " " +
"valve4 = " + valve4 + "\n" +
"i = " + i + " " + "f = " + f + " " + "source = " + source;
}
/**
* main()方法
* @paramString[] args
* return 空
*/
public static void main(String[] args){
//创建实例化对象
SprinklerSystem sprinklers = new SprinklerSystem();
//输出
System.out.println(sprinklers);
}
}
2继承 ——>按照现有类的类型创造新类。采用现有类的形式并在其中添加新代码。
1创建一个新类, 除非已明确指出从其他类中继承,否则就是在隐式地从 java的标准根类Object进行继承
2关于继承的构造函数的问题,首先构造函数的不能被继承的。从语法上来说,构造函数要与类名同名,若
子类继承父类的构造函数那么语法就出错了。
我们在创建子类对象的时候会自动调用父类的构造函数,注意这里的(调用)不是(继承)调用有两种方
式(继承)和(组合)。
3 其次子类/父类的构造函数的关系——>即若子类无现式(super())调用父类的有参构造函数,那么必调用父类的无参构造函数。
4方法重写的问题 1重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型
2重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)
3重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常
4只有实例方法才能被重写,超类中的final方法不能被重写
//包名
package javafuxi2;
/**
* Cleanser()类
* @author xinjie
*
*/
class Cleanser {
//定义私有参数
private String s = "Cleanser";
/**
* append()方法
* @param String a
* 返回值为空
*/
public void append(String a){
//s=s+a
s += a;
}
/**
* dilute()方法
* 返回值为空
*/
public void dilute() {
//赋值
append(" dilute()");
}
/**
* apply()方法
* 返回值为空
*/
public void apply(){
//赋值
append(" apply()");
}
/**
* scrub()方法
* 返回值为空
*/
public void scrub(){
//赋值
append("scrub()");
}
/**
* toString()方法
* 返回s
*/
public String toString(){
return s;
}
/**
* mian()方法
* @paramString[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Cleanser x = new Cleanser();
//调用方法
x.dilute();x.apply();x.scrub();
}
}
/**
* Detergent()类
* @author xinjie
* extends 继承 Cleanser
*/
public class Detergent extends Cleanser{
/**
* scrub()方法
* 返回值为空
*/
public void scrub(){
append(" Detergent.scrub");
//调用方法
super.scrub();
}
/**
* foam()方法
* 返回值为空
*/
public void foam(){
//赋值
append(" foam()");
}
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Detergent x = new Detergent();
//调用方法
x.dilute();
//调用方法
x.apply();
//调用方法
x.scrub();
//调用方法
x.foam();
//输出
System.out.println("Testing base class:");
//调用方法
Cleanser.main(args);
}
}
3代理——java 没有对其提供明确的支持,所以不再阐述。
多态
面向对象的一种技术
里面包含有 继承(extends) 覆盖(override) 重载(overloading) 向上转型(重写父类的方法)()
父类的对象指向子类的引用
//包名
package javafuxi2;
/**
* Son1类
* @author xinjie
* 继承 Father
*/
public class Son1 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("为什么打我?我做错什么了!");
}
}
/**
* Son2()类
* @author xinjie
* 继承 Father
*/
public class Son2 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("我知道错了,别打了!");
}
}
/**
* Son3类
* @author xinjie
* 继承 Father
*/
public class Son3 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("我跑,你打不着!");
}
}
/**
* Test类
* @author xinjie
*
*/
public class Test{
/**
* main()方法
* @paramString[] args
* 返回值为空
*/
public static void main(String args[]){
//引用
Father father;
//创建实例化对象
father = new Son1();
//调用方法
father.hitChild();
//创建实例化对象
father = new Son2();
//调用方法
father.hitChild();
//创建实例化对象
father = new Son3();
//调用方法
father.hitChild();
}
}
接口的特性
1.接口中的方法可以有参数列表和返回类型,但不能有任何方法体。
2.接口中可以包含字段,但是会被隐式的声明为 static 和 final 。
3.接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。
4.接口中的方法可以被声明为 public 或不声明,但结果都会按照 public 类型处理。
5.当实现一个接口时,需要将被定义的方法声明为 public 类型的,否则为默认访问类型, Java 编译器不允许这种情况。
6.如果没有实现接口中所有方法,那么创建的仍然是一个接口。
7.扩展一个接口来生成新的接口应使用关键字 extends ,实现一个接口使用 implements 。
8 接口中的方法是抽象方法(abstract),不能是静态方法(static).接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,所以这样定义接口才有意义。
接口的作用
接口是用来标记类的,不同的类属于不同的接口(通过向上转类型)管理接口比管理各种各样的类方便多了,接口是抽象类的观点
//调用包
import java.util.*;
//接口Instrument5
interface Instrument5 {
//赋值
int i = 5;
/**
* play()方法
* 返回值为空
*/
void play();
//赋值
String what();
/**
* adjust()方法
* 返回值为空
*/
void adjust();
}
/**
* Wind5()类
* @author xinjie
* 实现多个接口
*/
class Wind5 implements Instrument5 {
/**
* play()方法
*/
public void play() {
//输出
System.out.println("Wind5.play()");
}
/**
* what()方法
* 返回值为Wind5
*/
public String what() { return "Wind5"; }
/**
* adjust()方法
*/
public void adjust() {}
}
/**
* Percussion5()类
* @author xinjie
* 实现多个接口
*/
class Percussion5 implements Instrument5 {
/**
* play()方法
*/
public void play() {
//输出
System.out.println("Percussion5.play()");
}
/**
* what()方法
* 返回值为Percussion5
*/
public String what() { return "Percussion5"; }
/**
* adjust()
* 返回值为空
*/
public void adjust() {}
}
/**
* Stringed5()类
* @author xinjie
* 实现多个接口
*/
class Stringed5 implements Instrument5 {
/**
* play()
* 返回值为空
*/
public void play() {
//输出
System.out.println("Stringed5.play()");
}
/**
* what()方法
* 返回值为Stringed5
*/
public String what() { return "Stringed5"; }
/**
* adjust()
* 返回值为空
*/
public void adjust() {}
}
/**
* Brass5()类
* @author xinjie
* 实现多个接口
*/
class Brass5 extends Wind5 {
/**
* play()方法
* 返回值为空
*/
public void play() {
//输出
System.out.println("Brass5.play()");
}
/**
* adjust()方法
* 返回值为空
*/
public void adjust() {
//输出
System.out.println("Brass5.adjust()");
}
}
/**
* Woodwind5()类
* @author xinjie
* 实现多个接口
*/
class Woodwind5 extends Wind5 {
/**
* play()方法
* 返回值为空
*/
public void play() {
//输出
System.out.println("Woodwind5.play()");
}
/**
* what()方法
* 返回值为Woodwind5
*/
public String what() { return "Woodwind5"; }
}
/**
* Music5()类
* @author xinjie
*
*/
public class Music5 {
/**
* tune()方法
* @param Instrument5 i
* 返回值为空
*/
static void tune(Instrument5 i) {
//调用方法
i.play();
}
/**
* tuneAll()方法
* @param Instrument5 e
* 返回值为空
*/
static void tuneAll(Instrument5[] e) {
//for循环
for(int i = 0; i < e.length; i++)
//赋值
tune(e[i]);
}
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args) {
//创建实例化对象
Instrument5[] orchestra = new Instrument5[5];
//赋值
int i = 0;
//创建实例化对象
orchestra[i++] = new Wind5();
//创建实例化对象
orchestra[i++] = new Percussion5();
//创建实例化对象
orchestra[i++] = new Stringed5();
//创建实例化对象
orchestra[i++] = new Brass5();
//创建实例化对象
orchestra[i++] = new Woodwind5();
//赋值
tuneAll(orchestra);
}
}
内部类的特性
1)只能在包含类中直接使用内部类名,在包含类的外面,应该使用限定名来引用内部类。内部类不能与包含类同名。
2)内部类可以定义在方法体中,此时该方法中的本地变量和形参都不能被内部类中的方法访问,除非这些变量是final常量。
3)内部类可以使用包含类的静态成员变量,实例变量(即非静态成员变量),以及包含块的final型本地变量。
4)内部类可以定义为abstract。
5)内部类可以声明为任意的访问保护权限,即内部类有四个权限。
6)内部类能作为接口被其它内部类实现。
7)内部类声明为static后,自动成为顶级类。静态内部类无需外部类的实例就可直接引用。静态内部类中的方法不能访问外部类的非静态成员。
8)内部类中不能声明任何静态成员,只有顶级类中才能声明静态成员。
package javafuxi2;
//调用包
import java.awt.*;
//调用包
import java.awt.event.*;
//调用包
import java.util.*;
//调用包
import javax.swing.*;
//调用包
import javax.swing.Timer;
/**
* InnerClassTest 类
* @author xinjie
*
*/
public class InnerClassTest {
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
TalkingClock clock = new TalkingClock(1000,true);
//调用方法
clock.start();
//调用方法
JOptionPane.showConfirmDialog(null, "Quti program?");
//调用方法
System.exit(0);
}
}
/**
* TalkingClonk 类
* @author xinjie
*
*/
class TalkingClock{
/**
* TalkingClock()构造方法
* @param int interval boolean beep
*/
public TalkingClock(int interval,boolean beep){
//调用方法
this.interval = interval;
//调用方法
this.beep = beep;
}
/**
* start()方法
* 返回值为空
*/
public void start(){
//创建实例化
ActionListener listener = new TimerPrinter();
//创建实例化
Timer t = new Timer(interval,listener);
//调用方法
t.start();
}
//私有的int类interval
private int interval;
//私有的boolean类beep
private boolean beep;
/**
* TimerPrinter 类
* @author xinjie
* 接口 ActionListener
*/
public class TimerPrinter implements ActionListener {
/**
* actionPerformed()方法
* @param ActionEvent event
* 返回值为空
*/
public void actionPerformed(ActionEvent event){
//创建实例化对象
Date now = new Date();
//输出
System.out.println("At the tone,the time is"+now);
//调用方法
Toolkit.getDefaultToolkit().beep();
}
}
}
持有对象的概念
Collection 一个独立元素的序列
//包名
package javafuxi2;
//调用包
import java.util.*;
/**
* SimleCollection 类
* @author xinjie
*
*/
public class SimleCollection {
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Collection<Integer> c = new ArrayList<Integer>();
//for语句
for(int i = 0; i < 10; i++)
//调用方法
c.add(i);
//for语句
for(Integer i : c)
//输出
System.out.println(i + ", ");
}
}
通过异常处理错误
异常的捕获 定义异常
//包名
package javafuxi2;
//调用包
import java.util.logging.*;
//调用包
import java.io.*;
/**
* LoggingException 类
* @author xinjie
* 继承 Exception
*/
class LoggingException extends Exception{
//私有Logger引用Logger的调用方法
private static Logger logger = Logger.getLogger("LoggingException");
/*
* LoggingException()方法
*/
public LoggingException(){
//创建实例化对象
StringWriter trace = new StringWriter();
//创建实例化对象
printStackTrace(new PrintWriter(trace));
//调用方法
logger.severe(trace.toString());
}
}
/**
* LoggingExceptions 类
* @author xinjie
*
*/
public class LoggingExceptions{
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//如果有异常
try{
//创建实例化对象
throw new LoggingException();
//在地理捕捉
} catch(LoggingException e){
//输出
System.out.println("Caugth " + e);
}
}
}
今天的单词
void main String
7到12章的复习
7.复用类
8.多态
9.接口
10.内部类
11.持有对象
12.通过异常处理错误
复习结果
复用类
1:类的复用有三种形式 1组合——>即把对象的引用置于新类中
初始化引用的4中方式 1定义对象时初始化(那么其在构造函数调用前已经被初始化)。
2在类的构造体中初始化
3实例初始化
4就是在使用对象前完成初始化——惰性初始化
//包名
package javafuxi2;
/**
* WatreSource()类
* @author xinjie
*
*/
class WatreSource{
//定义私有参数
private String s;
/**
* 构造方法
*/
WatreSource(){
//输出
System.out.println("WatreSource()");
//定义参数
s = "Constructed";
}
/**
* toString()方法
*/
public String toString(){
//返回到s
return s;
}
}
/**
* SprinnklerSystem()类
* @author xinjie
*
*/
public class SprinklerSystem{
//定义私有参数
private String valve1, valve2, valve3, valve4;
//定义私有参数
private WatreSource source = new WatreSource();
//定义私有参数
private int i;
//定义私有参数
private float f;
/**
* toString()方法
*/
public String toString(){
//返回
return
"valve1 = " + valve1 + " " +
"valve2 = " + valve2 + " " +
"valve3 = " + valve3 + " " +
"valve4 = " + valve4 + "\n" +
"i = " + i + " " + "f = " + f + " " + "source = " + source;
}
/**
* main()方法
* @paramString[] args
* return 空
*/
public static void main(String[] args){
//创建实例化对象
SprinklerSystem sprinklers = new SprinklerSystem();
//输出
System.out.println(sprinklers);
}
}
2继承 ——>按照现有类的类型创造新类。采用现有类的形式并在其中添加新代码。
1创建一个新类, 除非已明确指出从其他类中继承,否则就是在隐式地从 java的标准根类Object进行继承
2关于继承的构造函数的问题,首先构造函数的不能被继承的。从语法上来说,构造函数要与类名同名,若
子类继承父类的构造函数那么语法就出错了。
我们在创建子类对象的时候会自动调用父类的构造函数,注意这里的(调用)不是(继承)调用有两种方
式(继承)和(组合)。
3 其次子类/父类的构造函数的关系——>即若子类无现式(super())调用父类的有参构造函数,那么必调用父类的无参构造函数。
4方法重写的问题 1重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型
2重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)
3重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常
4只有实例方法才能被重写,超类中的final方法不能被重写
//包名
package javafuxi2;
/**
* Cleanser()类
* @author xinjie
*
*/
class Cleanser {
//定义私有参数
private String s = "Cleanser";
/**
* append()方法
* @param String a
* 返回值为空
*/
public void append(String a){
//s=s+a
s += a;
}
/**
* dilute()方法
* 返回值为空
*/
public void dilute() {
//赋值
append(" dilute()");
}
/**
* apply()方法
* 返回值为空
*/
public void apply(){
//赋值
append(" apply()");
}
/**
* scrub()方法
* 返回值为空
*/
public void scrub(){
//赋值
append("scrub()");
}
/**
* toString()方法
* 返回s
*/
public String toString(){
return s;
}
/**
* mian()方法
* @paramString[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Cleanser x = new Cleanser();
//调用方法
x.dilute();x.apply();x.scrub();
}
}
/**
* Detergent()类
* @author xinjie
* extends 继承 Cleanser
*/
public class Detergent extends Cleanser{
/**
* scrub()方法
* 返回值为空
*/
public void scrub(){
append(" Detergent.scrub");
//调用方法
super.scrub();
}
/**
* foam()方法
* 返回值为空
*/
public void foam(){
//赋值
append(" foam()");
}
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Detergent x = new Detergent();
//调用方法
x.dilute();
//调用方法
x.apply();
//调用方法
x.scrub();
//调用方法
x.foam();
//输出
System.out.println("Testing base class:");
//调用方法
Cleanser.main(args);
}
}
3代理——java 没有对其提供明确的支持,所以不再阐述。
多态
面向对象的一种技术
里面包含有 继承(extends) 覆盖(override) 重载(overloading) 向上转型(重写父类的方法)()
父类的对象指向子类的引用
//包名
package javafuxi2;
/**
* Son1类
* @author xinjie
* 继承 Father
*/
public class Son1 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("为什么打我?我做错什么了!");
}
}
/**
* Son2()类
* @author xinjie
* 继承 Father
*/
public class Son2 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("我知道错了,别打了!");
}
}
/**
* Son3类
* @author xinjie
* 继承 Father
*/
public class Son3 extends Father{
//重写方法
/**
* hitChild()方法
* 返回值为空
*/
public void hitChild(){
//输出
System.out.println("我跑,你打不着!");
}
}
/**
* Test类
* @author xinjie
*
*/
public class Test{
/**
* main()方法
* @paramString[] args
* 返回值为空
*/
public static void main(String args[]){
//引用
Father father;
//创建实例化对象
father = new Son1();
//调用方法
father.hitChild();
//创建实例化对象
father = new Son2();
//调用方法
father.hitChild();
//创建实例化对象
father = new Son3();
//调用方法
father.hitChild();
}
}
接口的特性
1.接口中的方法可以有参数列表和返回类型,但不能有任何方法体。
2.接口中可以包含字段,但是会被隐式的声明为 static 和 final 。
3.接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。
4.接口中的方法可以被声明为 public 或不声明,但结果都会按照 public 类型处理。
5.当实现一个接口时,需要将被定义的方法声明为 public 类型的,否则为默认访问类型, Java 编译器不允许这种情况。
6.如果没有实现接口中所有方法,那么创建的仍然是一个接口。
7.扩展一个接口来生成新的接口应使用关键字 extends ,实现一个接口使用 implements 。
8 接口中的方法是抽象方法(abstract),不能是静态方法(static).接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,所以这样定义接口才有意义。
接口的作用
接口是用来标记类的,不同的类属于不同的接口(通过向上转类型)管理接口比管理各种各样的类方便多了,接口是抽象类的观点
//调用包
import java.util.*;
//接口Instrument5
interface Instrument5 {
//赋值
int i = 5;
/**
* play()方法
* 返回值为空
*/
void play();
//赋值
String what();
/**
* adjust()方法
* 返回值为空
*/
void adjust();
}
/**
* Wind5()类
* @author xinjie
* 实现多个接口
*/
class Wind5 implements Instrument5 {
/**
* play()方法
*/
public void play() {
//输出
System.out.println("Wind5.play()");
}
/**
* what()方法
* 返回值为Wind5
*/
public String what() { return "Wind5"; }
/**
* adjust()方法
*/
public void adjust() {}
}
/**
* Percussion5()类
* @author xinjie
* 实现多个接口
*/
class Percussion5 implements Instrument5 {
/**
* play()方法
*/
public void play() {
//输出
System.out.println("Percussion5.play()");
}
/**
* what()方法
* 返回值为Percussion5
*/
public String what() { return "Percussion5"; }
/**
* adjust()
* 返回值为空
*/
public void adjust() {}
}
/**
* Stringed5()类
* @author xinjie
* 实现多个接口
*/
class Stringed5 implements Instrument5 {
/**
* play()
* 返回值为空
*/
public void play() {
//输出
System.out.println("Stringed5.play()");
}
/**
* what()方法
* 返回值为Stringed5
*/
public String what() { return "Stringed5"; }
/**
* adjust()
* 返回值为空
*/
public void adjust() {}
}
/**
* Brass5()类
* @author xinjie
* 实现多个接口
*/
class Brass5 extends Wind5 {
/**
* play()方法
* 返回值为空
*/
public void play() {
//输出
System.out.println("Brass5.play()");
}
/**
* adjust()方法
* 返回值为空
*/
public void adjust() {
//输出
System.out.println("Brass5.adjust()");
}
}
/**
* Woodwind5()类
* @author xinjie
* 实现多个接口
*/
class Woodwind5 extends Wind5 {
/**
* play()方法
* 返回值为空
*/
public void play() {
//输出
System.out.println("Woodwind5.play()");
}
/**
* what()方法
* 返回值为Woodwind5
*/
public String what() { return "Woodwind5"; }
}
/**
* Music5()类
* @author xinjie
*
*/
public class Music5 {
/**
* tune()方法
* @param Instrument5 i
* 返回值为空
*/
static void tune(Instrument5 i) {
//调用方法
i.play();
}
/**
* tuneAll()方法
* @param Instrument5 e
* 返回值为空
*/
static void tuneAll(Instrument5[] e) {
//for循环
for(int i = 0; i < e.length; i++)
//赋值
tune(e[i]);
}
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args) {
//创建实例化对象
Instrument5[] orchestra = new Instrument5[5];
//赋值
int i = 0;
//创建实例化对象
orchestra[i++] = new Wind5();
//创建实例化对象
orchestra[i++] = new Percussion5();
//创建实例化对象
orchestra[i++] = new Stringed5();
//创建实例化对象
orchestra[i++] = new Brass5();
//创建实例化对象
orchestra[i++] = new Woodwind5();
//赋值
tuneAll(orchestra);
}
}
内部类的特性
1)只能在包含类中直接使用内部类名,在包含类的外面,应该使用限定名来引用内部类。内部类不能与包含类同名。
2)内部类可以定义在方法体中,此时该方法中的本地变量和形参都不能被内部类中的方法访问,除非这些变量是final常量。
3)内部类可以使用包含类的静态成员变量,实例变量(即非静态成员变量),以及包含块的final型本地变量。
4)内部类可以定义为abstract。
5)内部类可以声明为任意的访问保护权限,即内部类有四个权限。
6)内部类能作为接口被其它内部类实现。
7)内部类声明为static后,自动成为顶级类。静态内部类无需外部类的实例就可直接引用。静态内部类中的方法不能访问外部类的非静态成员。
8)内部类中不能声明任何静态成员,只有顶级类中才能声明静态成员。
package javafuxi2;
//调用包
import java.awt.*;
//调用包
import java.awt.event.*;
//调用包
import java.util.*;
//调用包
import javax.swing.*;
//调用包
import javax.swing.Timer;
/**
* InnerClassTest 类
* @author xinjie
*
*/
public class InnerClassTest {
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
TalkingClock clock = new TalkingClock(1000,true);
//调用方法
clock.start();
//调用方法
JOptionPane.showConfirmDialog(null, "Quti program?");
//调用方法
System.exit(0);
}
}
/**
* TalkingClonk 类
* @author xinjie
*
*/
class TalkingClock{
/**
* TalkingClock()构造方法
* @param int interval boolean beep
*/
public TalkingClock(int interval,boolean beep){
//调用方法
this.interval = interval;
//调用方法
this.beep = beep;
}
/**
* start()方法
* 返回值为空
*/
public void start(){
//创建实例化
ActionListener listener = new TimerPrinter();
//创建实例化
Timer t = new Timer(interval,listener);
//调用方法
t.start();
}
//私有的int类interval
private int interval;
//私有的boolean类beep
private boolean beep;
/**
* TimerPrinter 类
* @author xinjie
* 接口 ActionListener
*/
public class TimerPrinter implements ActionListener {
/**
* actionPerformed()方法
* @param ActionEvent event
* 返回值为空
*/
public void actionPerformed(ActionEvent event){
//创建实例化对象
Date now = new Date();
//输出
System.out.println("At the tone,the time is"+now);
//调用方法
Toolkit.getDefaultToolkit().beep();
}
}
}
持有对象的概念
Collection 一个独立元素的序列
//包名
package javafuxi2;
//调用包
import java.util.*;
/**
* SimleCollection 类
* @author xinjie
*
*/
public class SimleCollection {
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//创建实例化对象
Collection<Integer> c = new ArrayList<Integer>();
//for语句
for(int i = 0; i < 10; i++)
//调用方法
c.add(i);
//for语句
for(Integer i : c)
//输出
System.out.println(i + ", ");
}
}
通过异常处理错误
异常的捕获 定义异常
//包名
package javafuxi2;
//调用包
import java.util.logging.*;
//调用包
import java.io.*;
/**
* LoggingException 类
* @author xinjie
* 继承 Exception
*/
class LoggingException extends Exception{
//私有Logger引用Logger的调用方法
private static Logger logger = Logger.getLogger("LoggingException");
/*
* LoggingException()方法
*/
public LoggingException(){
//创建实例化对象
StringWriter trace = new StringWriter();
//创建实例化对象
printStackTrace(new PrintWriter(trace));
//调用方法
logger.severe(trace.toString());
}
}
/**
* LoggingExceptions 类
* @author xinjie
*
*/
public class LoggingExceptions{
/**
* main()方法
* @param String[] args
* 返回值为空
*/
public static void main(String[] args){
//如果有异常
try{
//创建实例化对象
throw new LoggingException();
//在地理捕捉
} catch(LoggingException e){
//输出
System.out.println("Caugth " + e);
}
}
}
今天的单词
void main String
发表评论
-
Zepto
2015-08-15 13:49 1234Zepto Zepto,是一个比较 ... -
node.js的学习-20140611
2014-06-11 23:17 769//创建一个h1方法里面舒服一个nihao functi ... -
node.js的学习-20140609
2014-06-09 23:01 580Node.js 是一个基于Chrome JavaScript ... -
git的学习-20140604
2014-06-04 23:30 531Git使用 首先 开启"G ... -
PC和移动端的页面的一些差距-20140525
2014-05-25 23:46 879首先 1、标签、描述等描述清晰准确 2、网站结构3层树状结构 ... -
Bootstrap排版基础样式和响应式图片-20140521
2014-05-22 00:41 2737Bootstrap基础排版样式 .col-xs-* // ... -
Bootstrap特性、设计和组件-20140519
2014-05-19 22:22 710特点 Bootstrap是基于jQuery框架开发的,它在j ... -
Bootstrap流式布局-20140515
2014-05-16 00:26 14753流布局是一种适应屏幕的做法。即不固定块的宽度,而是采用百分比作 ... -
Bootstrap的宽度和分辨率的差别-20140514
2014-05-14 23:05 6263首先在bootstrap里面所有 ... -
Bootstrap的认识-20140513
2014-05-14 00:09 1380通过公司的两个比较大 ... -
jquery初步认识-20140123
2014-01-24 01:30 695一、原型模式结构 // 定义一个jQuery构造函数 ... -
html5的特殊标签作用-20140114
2014-01-15 01:04 913<base>、定义页面中所有链接的基准URL & ... -
ie下的指定样式-20140106
2014-01-08 00:00 7681. <!--[if !IE]><!--&g ... -
margin-left在IE6下左浮动加倍-20140102
2014-01-02 23:04 749一、IE6下如果line-height超出本身区块的heigh ... -
浮动存在的问题-20131229
2013-12-29 23:00 540看一个正常的浮动案例 <!DOCTYPE h ... -
在ie6下同张图片不能外面包有a标签后在画热区-20131223
2013-12-23 23:47 869最近在做页面有的发现一个问题 <div class ... -
ie6下导航存在的问题和-2013-12-20
2013-12-21 00:51 639最近在做事的时候发现一个有趣的问题,在上网也找过但是都没有很好 ... -
按比例展示的小js-20131217
2013-12-18 00:41 435做需求的做到一个关于这个功能的项目所以记下来 Math.ra ... -
定位需要注意-20131214
2013-12-15 01:07 699在CSS中关于定位的内容 ... -
flash在Safari下的BUG-20131212
2013-12-12 01:09 768<object width="940&qu ...
相关推荐
【第二册学习大厅unit6答案】的描述指出这是一份针对特定教材的综合单元测试,包含听力理解(Listening Comprehension)和听写(Spot Dictation)两部分,且题目可能因人而异。标签“答案”表明这是该单元测试的答案...
标题:“Go学习笔记 第四版(书签版)”表明这是一份关于Go语言(又称Golang,是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言)的学习资料,这份资料已经更新到了第四版,并且特地...
2. 垃圾邮件检测是典型的监督学习应用,因为它需要利用已标记的邮件(垃圾或非垃圾)来训练模型,然后对新邮件进行分类。 3. 梯度下降是优化算法,用于找到损失函数最小值的参数。沿着负梯度方向更新参数,步长由...
3. **月份天数**:不同月份的天数不同,通常情况下,1月和3月有31天,4月、6月、9月和11月有30天,2月根据是否是闰年有所不同。这些天数可以存储在一个数组中方便查询。 4. **累计天数**:从1月1日开始,每个月的...
这份资料是广东省中山市第二中学2020-2021学年度高一4月月考物理试题的历史班版本,包含Word版答案。试题主要考察了高中阶段的物理知识,特别是与曲线运动相关的概念和原理。 1. 曲线运动的性质: - 加速度方向:...
第一季度包括1月、2月和3月,第二季度是4月、5月和6月,第三季度是7月、8月和9月,第四季度则是10月、11月和12月。 在练习部分,设置了判断题和抢答题,以检验学生对年、月、日的理解。例如,确认每年并非都是365天...
小月有4个,即4月、6月、9月和11月,每个小月有30天。2月是特殊的一个月,平年有28天,闰年有29天。 3. 植树节: 植树节通常在3月12日,这是鼓励人们参与植树造林,保护环境的节日。 4. 学习提纲: 学生需要研究某...
- Thanksgiving Day:感恩节,在十一月的第四个星期四。 - Spring Festival:春节,中国的新年,通常在一月或二月。 - Tree planting Day:植树节,通常在中国的三月十二日。 - Teachers’ Day:教师节,通常在中国...
2. 第二题考察名词的单复数及辨析。在英语中,“that”指代单数物品,且需用不定冠词an修饰首字母发音为元音音素的名词,因此选A,pencil case。 3. 第三题考察提议的回应。根据答语“Let’s go.”,可知同意对方的...
第二版在第一版的基础上进行了更新和优化,加入了更多实战案例和新的API讲解,使得内容更加丰富且符合当前技术趋势。 在这个2018年11月的个人笔记和apk压缩包中,我们可以期待找到以下几个关键知识点: 1. **...
3. 标点符号使用规则:题目中的第2小题考察了标点符号的正确使用,如顿号、逗号、破折号等,这是语言表达规范的重要组成部分。 4. 语病辨析:第3小题是对句子语病的检查,帮助学生识别并改正句子结构错误,提升语言...
- 2年确实有24个月,所以第二题的答案为“√”。 - 7月和8月加起来有62天,9月有30天,所以这三个月加起来并不是90天,第三题的答案为“×”。 - 2月没有31天,因此第四题的答案也为“×”。 ##### 练习题三 - 如果...
2. 对前17位数字按以下权重进行加权求和:第一位乘以7,第二位乘以9,第三位乘以10,第四位乘以5,第五位乘以8,第六位乘以6,第七位乘以3,第八位乘以4,第九位乘以5,第十位乘以6,第十一位乘以7,第十二位乘以8,...
4. 高校远程教育的管理:中国高校通常采用网络教育学院和学习中心两级管理模式,对远程教育进行组织和管理。 5. 学习量建议:学生每学期不宜承担过多课程,最好不超过5门,以保证学习质量。 6. 平台互动:在...
这篇资料是辽宁省辽河油田第二高级中学2017-2018学年高一化学4月月考试题的一部分,主要涉及高中化学的基础知识,包括化学键、元素周期表、原子结构、化学反应能量变化、原电池原理、化学平衡状态判断等内容。...
【文档标题】提到的是“上海市黄浦区2016届高三数学4月第二次模拟考试试题文”,这是一份针对即将参加高考的高三学生的数学模拟考试试卷,主要测试学生的数学能力,涵盖各种数学知识点。 【描述】同样指出这是一份...
2. 电话号码表达:第二题中提到"You can call your English teacher at 563-7853.",在英语中,拨打某人的电话号码时用介词"at"。 3. 冠词使用:第四题考查不定冠词"a/an"与定冠词"the"的用法,"ID card"是以元音...
9. **时间节点**:各地区的网上确认时间不一,如河北10月31日至11月4日,上海10月30日至11月4日12:00,广东10月下至11月上旬等,考生需密切关注各自报考点的公告。 10. **保持警惕**:报名成功后,考生还需要持续...
Java数据结构和算法中文第二版(1) Java数据结构和算法中文第二版(2) 【内容简介】 本书可帮助读者: 通过由基于JAVA的演示所组成的可视专题讨论来掌握数据结构和算法 学会如何为常见和不太常见的编程条件选择...