JAVA面向程序设计(第二版)袁绍欣 一~五章

第一章

1.(1)简单;(2)面向对象;(3)平台无关性和可移植性;(4)稳定性和安全性;(5)多线程并且是动态的;(6)高性能;(7)分布式
3. Java平台共分为三类:Java SE-主要是为台式机和工作站提供一个开发和运行的平台。
Java EE-该平台主要是为企业计算提供一个应用服务运行和开发平台。
Java ME-主要是面向消费电子产品,为消费电子产品提供一个Java的运行平台,使得Java程序可以在手机、机顶盒、PDA等产品上运行。
4. Application:

public class MyFirstJava{
       public static void main(String args[]){
	          System.out.println("My first java!");
		}
}

Applet:
.java文件

import java.awt.*;
import java.applet.*;
public class MyFirstJavaApplet extends Applet{
       public void init(){
	   }
	   public void paint(Graphics g){
		   g.drawString("My First Java!",25,25);
	    }
}

.html文件

<APPLET CODE="MyFirstJavaApplet" width=150 height=100>
</APPLET>

5.

import java.awt.*;
import java.applet.*;
public class First extends Applet{
        public static void main(String args[]){
        System.out.println("My first Java!");
        }
    public void init(){
    }
    public void paint(Graphics g){
    g.drawString("My first Java!",25,25);
    }
}

但是以applet程序运行时会出现问题,暂时不知道为什么

第一个html为生成过.html的结果,第二个为删除的
尽管代码可以作为applet和application运行,但是依然要保存如下HTML代码

<APPLET CODE="First"width =150 height=100>
</APPLET>

第二章

1. CD
2. 原本的switch语句条件只能为以下几种基本类型之一:byte、short、int、char。但是现在版本已经更新,Enum、String、Character、Byte、short、Integer等包装类也可以成为条件语句。
3. C
4. float s=2.3,应该在小数后面加一个f,否则默认类型为double,正确应该为float s=2.3f
5. B

第四章

1. 构造方法:是一个与类名相同的类方法 。每当使用new创建一个对象,为新建对象开辟了内存空间之后,Java系统会自动调用构造方法初始化新建对象。
抽象:抽象是从被研究对象中舍弃个别的、非本质的或与研究主旨无关的次要特征,而抽取与研究有关的共性内容加以考察,形成对研究问题正确、简明扼要的认识。
2.

  1. 在Java中,所有的对象都被动态地分配在堆上。
  2. 声明能引用对象的实质在于,它在栈中保留了堆中对象的实际地址。

3. 基本数据类型作为参数在方法中的传递是值传递;而对象是引用传递,当对象作为参数传递时,传递的是对象的地址,也就是说对象只有一个。
4. 要想调用finalize方法,首先要使对象成为垃圾:当对象没有任何引用时,才能成为垃圾,其次,系统并不是主动地释放对象所占的内存资源,而是在资源不够的情况下才可能进行释放。当系统不忙时进行相应的释放垃圾资源的工作,此时垃圾对象的finalize方法才能被调用。
5. 如何证明对象被释放:
6. 以final修饰类属性,则该属性为常量;如果修饰方法,则方法成为最终方法,在子类当中不能被覆盖。保证了程序的安全性和正确性。
7. static修饰的域变量不属于任何一个类的具体对象,而专属于类,特点为:它被保存在类的内存区(堆中)的公共存储单元中,而不是保存在某个对象的内存区中。
static修饰的方法称为静态方法,它属于类方法。不属于类的任何对象,具有如下特点:
(1)static方法是类方法,但可以被所有对象所访问。调用这个方法时,可采用“对象应用.方法名”,也可采用“类名.方法名”。
(2)static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象);但非static方法(对象方法)可以访问static属性或方法。
(3)main方法是特殊的静态方法。
8. 因为用java运行Application时,时执行一个类,如果若写 java xxx.yyy,是代表要运行 package xxx 中的class yyy 里面的 main(String[]),所以当写 java xxx.class 时, 它会以为要找一个叫xxx的package里面的一个叫class的class.
9. D、E

第五章

1. 面向对象的特征主要有封装、继承与多态
2. 封装就是利用抽层数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型内部,系统只有通过被授权的操作方法才能访问数据。我理解为private,protected,public等关键字的引入进行封装。
3. 对象与对象之间通过消息进行相互作用,而这种作用称之为引用。使用引用的属性或方法其实都是调用对象的引用或方法。而消息的实质就是引用向对象发出的服务请求,是对数据成员和方法的调用。例如fp.name和fp.fire()就是发送消息。
4. 假设现有一个类前修饰符为public的类A,与A在同一包中的类B,A的子类C,则A的属性和方法前的修饰符为protected时,在类定义的层面上,访问权限为B+C,但是在对象引用的层面上,为B。
5. Object类中的方法有:
Object clone():将当前对象克隆
boolean equals(Object obj):判断两个引用是否指向同一个对象,其参数不能为基本数据类型(被很多子类覆盖,用于判断对象所代表的值是否一致,如String)
void finalize():当对象被释放时调用
Class getClass():获得当前对象的类对象
int hashCode():得到一个代表对象的hashcode整数,这个整数在应用程序运行时保持不变
String toString():得到代表这个对象的字符串
void notify():应用于线程同步通信中唤醒等待线程
void wait():应用于线程同步通信中的线程等待
6. 重载的方法都为多个同名,不同内容参数(参数类型或个数不同)的成员方法
7. (1)子类对父类参数相同、返回类型相同的同名方法重新进行定义,这种多态被称为覆盖;
(2)如果子类定义的方法与父类名称相同,但是参数名称不同,不是覆盖;
如果名称,参数相同,返回值类型不同,则编译不会通
8. (1)面向对象程序设计以对象为研究重点,然而这些对象究竟以什么样的方式构成系统则十分重要,因为系统常常因为外界因素的变化,在保持稳定性的同时需要有很好的可拓展性和可维护性。封装和组合技术的综合应用可以实现面向对象程序设计“高内聚,低耦合”的特点。
(2)继承是面向对象程序设计中对功能进行复用的重要手段:面向对象应用程序经常以框架和中间件为基础进行设计,应用程序代码和框架代码、中间件代码能够进行融合的主要方式就是采用继承。继承为引用带来了新特点:使用继承机制,一般类可派生出特殊类,原先发往一般类对象的消息也由于继承机制的原因可发往特殊类对象,这就为引用带来了新特点。
(3)面向对象程序设计过程中,对于能进行消息处理的接口方法,有时既需要对其功能进行复用,同时又需要对其进行补充,重载正好能满足这种需求;而方法覆盖与引用替换结合,可使抽象类的声明在保证消息发送统一性的前提下,具有消息结果执行上的相异性特点。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值