作业

本文深入讲解Java中的构造方法、抽象概念、对象与引用的区别、数据类型转换等核心知识点,并对比了基本数据类型与引用类型的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1-4章课后题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

对象位于内存的栈空间
声名能引用对象的实质是将新创建的类(FighterPlane)的对象的地址赋给对象引用(fp),从此引用与该对象关联,通过引用即可操纵该对象

基本数据类型作为参数在方法中的传递是值传递
对象是引用传递,当对象作为参数传递时,传递的是对象的地址。

清理工作
当垃圾回收发生时,finalize() 方法被调用(不保证一定会发生)
垃圾回收不一定会发生

对象没有任何引用时成为垃圾
Java虚拟机进行垃圾回收,清理所有的垃圾对象,即释放对象占用的所有内存
?如何证明一个对象被释放了

final修饰类属性,则该属性为常量;如果修饰方法,则方法成为最终方法,在子类当中不能被覆盖;修饰类,则该类不能被继承。

属性和方法特点
用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员。
它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值。

用static修饰符修饰的方法称为静态方法,它属于类方法,不属于任何对象。有如下特点:
static方法是雷发那个发,但可以被所有对象所访问。
static方法内部的代码只能访问类中的static属性或方法,不能访问类中的非static属性或方法;但非static方法(对象方法)可以访问static属性或方法。
main方法是特殊的静态方法。

?java虚拟机规定不需要后缀名

BD
?E错在地址吗?

补充
对象与对象引用的区别是什么? 请举例说明

  1. 创建对象: new FighterPlane(); (分配在堆上)
  2. 声明一个对象引用: FighterPlane fp ; (分配在栈上)
  3. 初始化对象引用: fp = new FighterPlane();

对象作为参数传递的特点是什么?请举例说明
基本数据类型作为参数在方法中的传递是值传递
对象是引用传递,当对象作为参数传递时,传递的是对象的地址。
课本例4.4
class IntClass {
int value;
}
public class RunIntClass {
public static void modifyValue(IntClass s, int val){
s.value = val;
}
public static void main(String[] args) {
IntClass a = new IntClass();
modifyValue(a,8);
System.out.println(a.value);
}
}

对象初始化顺序是怎样的?请举例说明
1.系统会对数据成员进行默认初始化
2.执行数据成员定义处的初始化语句
3.调用构造方法为数据成员指定初值

类的static字段与非static字段的区别是什么?什么情况应该使用static修饰符?请举例说明
非static修饰符修饰的数据成员属于一个类的具体对象,被保存在某个对象的内存区中。
static修饰符修饰的数据成员属于类的静态数据成员,被保存在类的内存区的公共存储单元中。
所以说在属性需要被类、多个对象引用共享访问的时候,需要用static修饰。
课本例4.8
class IntClass
{
int value;
//定义构造方法将属性value初始化,注构造方法没有返回类型。
public IntClass(int val){
value = val;
}
}
public class IntClassConstructor
{
public static IntClass getInstance()
{
//调用构造方法,从而省略了s.value代码
IntClass s = new IntClass (8);
//s.value=8;
return s;
}
public static void main(String args[])
{
IntClass a = getInstance();
System.out.println(a.value);
}
}

Java中final修饰符都有什么作用?请举例说明
final修饰类属性,则该属性为常量;如果修饰方法,则方法成为最终方法,在子类当中不能被覆盖。
例1
final int NUM = 20;
NUM = 30; // 编译错误
例2
class Parent {
public final void method1(){}//这个方法不能被子类覆盖
}
class Child extends Parent {
public final void method1(){…}//编译错误
}
例3
class Parent {
}
final class Person extends Parent{
} //可以继承Parent类
class Child extends Person{
} //编译报错,不能继承Person类

Java中float[10] arr; 语句正确么?为什么?
不正确。float中的[]不应该给出具体数字,语句只是声明了arr是一个float型的数组,并未给其分配空间。

Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明
数组元素为基本数据类型:
例: int[] arr = new int[10]; //此时分配了数组空间,每个单元初始化为默认值0
产生一个有10个单元,类型为int的数组对象,所有单元的初始值为0;

数组元素为引用类型:
例:String[]example = new String[10]; //对象引用数组
产生一个具有10个单元的数组对象,每个单元存放的是一个String对象的引用,所有单元的初值为null,此时并未创建具体的String对象。

第二章日期9.25
课本p33 1-5
1
D
2
bite,short,int,char
3
C
4
float小数点后面要加f,不然是double类型,会出错
float s=2.3f
5
B

问答题

  1. Java包含哪些数据类型?请举例说明
    1)基本数据类型(primitive type)包括:
    整数类型:byte(8位), short(16位), int (32位) , long(64位)
    浮点类型:float,double
    字符类型:char (16位,使用Unicode字符集)
    布尔类型:boolean (C++ 的布尔类型是bool)
    2)引用类型(reference type)包括:
    class(类)
    interface(接口)
    数组

  2. Java基本数据类型转换包含哪两类?请举例说明
    1)自动类型转换规则
    byte、short、char类型被提升到int类型
    整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级 。
    2)强制类型转换
    高级数据要转换成低级数据,需用到强制类型转换

  3. 为什么需要包装类?
    实现不同数据类型的转化 (通过包装类的静态方法)
    获取相应数据类型的范围信息 (通过包装类的静态属性)
    基本数据类型不是对象,在一些场合不能直接使用,需要转化为相应的包装类对象才能继续使用。

  4. int与Integer有什么区别,它们之间的相互转化是怎样的?
    intrger是普通数据类型int对应的包装类
    相互转化:
    1)基本数据类型转化为包装类对象通过构造方法来完成。Integer vari = new Integer(5)
    2)从包装类对象哪里得到其代表的基本数据值需要调用该对象的相应方法。1)中的vari可以通过调用intValue()方法得到一个int类型的值

  5. 逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明
    x=1,y=1
    “&”在执行操作时,运算符左右两边的表达式首先被运算执行,再对两表达式的结果进行与、或运算。(x+=1)==1&(y+=1)==2运行后x=2,y=2
    “&&”执行操作时,如果从左边的表达式中得到操作数能确定运算结果,则不再对右边的表达式进行运算。(x+=1)==1&&(y+=1)==2运行后x=2,y=1

x&y
&为逻辑运算符时,x,y都为true时,结果为true

&为位运算符,x,y按位进行与操作
x=10101,y=11100
x&y=10100

  1. Java语言中可以采用什么语句跳出多重循环?请举例说明
    通过
    条件表达式为假
    break 跳出本层循环
    break lab 跳出多重循环的外层循环
    continue lab 可以跳出外层的本次循环,继续外层下一次循环

第一章日期:9.18

  1. 谈谈你过去学习编程语言的方法、经验和教训
    听课看书+练习
    最初学c++的时候没有软件,只能在寝室先把大概打出来,然后去机房验证,有很多错误,改起来很费时间,然后就不怎么喜欢语言类课程了;然后概念还很多,经常顾不上概念先把代码改好就到了下一节内容了。还好后面几个语言学的时候可以下软件在寝室练习。

  2. Java语言都有哪些特点?
    简单,面向对象,平台无关性和可移植性,稳定和安全,多线程并且是动态的,高性能,分布性

  3. Java跨平台实现的原理是什么?
    .java文件会被翻译成字节码文件——.class。.class文件与具体操作系统的机器指令无关,由java虚拟机完成解释执行工作。

  4. JDK、JRE、JVM有哪些区别?
    JDK:Java Development Kit Java开发工具包
    JRE:Java runtime environment Java运行环境
    JVM:Java Virtual Machine Java虚拟机

P9
T4
#Application程序
public class HellowWorld{
public static void main(String args[]){
System.out.println(“My first Java!”);
}
}

#Applet程序
import java.awt. * ;
import java.applet. * ;
public class HellowWorldApplet extends Applet{
public void init(){
}
public void paint(Graphics g){
g.drawString(“My first Java!”,25,25);
}
}

T5
import java.awt.;
import java.applet.
;
public class MfJ 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);
}
}

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在苹果的生态系统中,IAP(应用内购买)是苹果应用商店(App Store)中应用开发者常采用的一种盈利模式,允许用户在应用内直接购买虚拟商品或服务。苹果为开发者提供了一份详细的人民币(CNY)IAP定价表,这份定价表具有以下特点: 价格分级:定价表由多个价格等级组成,开发者可根据虚拟商品的价值选择相应等级,等级越高,价格越高。例如,低等级可能对应基础功能解锁,高等级则对应高级服务或大量虚拟道具。 税收与分成:苹果会从应用内购买金额中抽取30%作为服务费或佣金,这是苹果生态的固定规则。不过,开发者实际到手的收入会因不同国家和地区的税收政策而有所变化,但定价表中的价格等级本身是固定的,便于开发者统一管理。 多级定价策略:通过设置不同价格等级,开发者可以根据商品或服务的类型与价值进行合理定价,以满足不同消费能力的用户需求,从而最大化应用的总收入。例如,一款游戏可以通过设置不同等级的虚拟货币包,吸引不同付费意愿的玩家。 特殊等级:除了标准等级外,定价表还包含备用等级和特殊等级(如备用等级A、备用等级B等),这些等级可能是为应对特殊情况或促销活动而设置的额外价格点,为开发者提供了更灵活的定价选择。 苹果IAP定价表是开发者设计应用内购机制的重要参考。它不仅为开发者提供了标准的收入分成模型,还允许开发者根据产品特性设定价格等级,以适应市场和满足不同用户需求。同时,开发者在使用定价表时,还需严格遵守苹果的《App Store审查指南》,包括30%的分成政策、使用苹果支付接口、提供清晰的产品描述和定价信息等。苹果对应用内交易有严格规定,以确保交易的透明性和安全性。总之,苹果IAP定价表是开发者在应用内购设计中不可或缺的工具,但开发者也需密切关注苹果政策变化,以确保应用的合规运营和收益最大化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值