我的第三次JAVA作业
------------恢复内容开始------------
1.对象与对象引用的区别是什么? 请举例说明
创建对象被分配在堆中,对象引用分配在栈中。
eg.
new FighterPlane(); //创建对象 (相当于电视机)
FighterPlane fp; //声明一个对象引用(遥控器)
fp = new FighterPlane(); //初始化对象引用(指明遥控对象)
2.对象作为参数传递的特点是什么?请举例说明
对象是引用传递,当对象作为参数传递时,传递的是对象的地址。
1 class IntClass
2 {
3 int value;
4 }
5 public class RunIntClass
6 {
7 public static void modifyValue(IntClass s,int val)
8 {
9 s.value = val;
10 }
11 public static void main(String args[])
12 {
13 IntClass a = new IntClass(); //产生一个IntClass的对象,被a引用
14 modifyValue(a,8); //对a引用的对象赋值 执行该方法时"s=a"的含义是将a的地址传递给了s,而不是产生了新的对象,这样s和a所指的对象是同一个
15 System.out.println(a.value); //显示a对象的属性
16 }
17 }

3.对象初始化顺序是怎样的?请举例说明
先初始化父类的静态代码--->初始化子类的静态代码-->初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数
1 public class Father {
2
3 static final String STATIC_FIELD_01 = getFatherField("STATIC_FIELD_01");
4
5 private String field01 = getMemberFatherField("field01");
6
7 public Father() {
8 System.out.println("父类构造方法!");
9 }
10
11 static {
12 System.out.println("父类静态代码块!");
13 }
14
15 static final String STATIC_FIELD_02 = getFatherField("STATIC_FIELD_02");
16
17 static String getFatherField(String str) {
18 System.out.println("父类静态成员变量初始化-" + str);
19 return str;
20 }
21
22 {
23 System.out.println("父类代码块!");
24 }
25
26 private String field02 = getMemberFatherField("field01");
27
28 String getMemberFatherField(String str) {
29 System.out.println("父类静态成员变量初始化-" + str);
30 return str;
31 }
32
33 static class Son extends Father {
34
35 static final String STATIC_FIELD_01 = getSonField("STATIC_FIELD_01");
36
37 private String field01 = getMemberSonField("field01");
38
39 public Son() {
40 System.out.println("子类构造方法!");
41 }
42
43 static {
44 System.out.println("子类静态代码块!");
45 }
46
47 static final String STATIC_FIELD_02 = getSonField("STATIC_FIELD_02");
48
49 static String getSonField(String str) {
50 System.out.println("子类静态成员变量初始化-" + str);
51 return str;
52 }
53
54 {
55 System.out.println("子类代码块!");
56 }
57
58 private String field02 = getMemberSonField("field02");
59
60 String getMemberSonField(String str) {
61 System.out.println("子类成员变量初始化-" + str);
62 return str;
63 }
64
65
66 }
67
68 public static void main(String[] args) {
69 new Son();
70 }
71 }

4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?请举例说明
用static修饰的不属于任何一个类的具体对象,而专属于类。它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任意对象访问它,存取到的都是相同的数值。
static方法内部的代码,只能访问类中的static属性或方法,不能访问类中的非static属性或方法(因为它们属于对象),但非static可访问static属性或方法。
5.Java中final修饰符都有什么作用?请举例说明
final 变量:
final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。
final 修饰符通常和 static 修饰符一起使用来创建类常量。
1 public class Test{
2 final int value = 10;
3 // 下面是声明常量的实例
4 public static final int BOXWIDTH = 6;
5 static final String TITLE = "Manager";
6
7 public void changeValue(){
8 value = 12; //将输出一个错误
9 }
10 }
final 方法
父类中的 final 方法可以被子类继承,但是不能被子类重写。
声明 final 方法的主要目的是防止该方法的内容被修改。
如下所示,使用 final 修饰符声明方法。
1 public class Test{
2 public final void changeName(){
3 // 方法体
4 }
5 }
final 类
final 类不能被继承,没有类能够继承 final 类的任何特性。
1 public final class Test {
2 // 类体
3 }
6.Java中float[10] arr; 语句正确么?为什么?
不正确
7.Java数组元素类型为基本类型和引用类型时,有什么不同?请举例说明
数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,先为该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。
引用类型数组的数组元素是引用,因此情况变得更加复杂:每个数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了有效数据。
------------恢复内容结束------------
我的第三次JAVA作业的更多相关文章
- 第三次java作业
编写“学生”类及其测试类. 5.1 “学生”类: ² 类名:Student ² 属性:姓名.性别.年龄.学号.5门课程的成绩 ² 方法1:在控制台输出各个属性的值. ² 方法2:计算平均成绩 ² 方法 ...
- 【作业】HansBug的前三次OO作业分析与小结
OO课程目前已经进行了三次的作业,容我在本文中做一点微小的工作. 第一次作业 第一次作业由于难度不大,所以笔者程序实际上写的也比较随意一些.(点击就送指导书~) 类图 程序的大致结构如下: 代码分析 ...
- Hadoop 系列(三)Java API
Hadoop 系列(三)Java API <dependency> <groupId>org.apache.hadoop</groupId> <artifac ...
- 初识Java作业
初识Java作业 一. 填空题 Java技术按照用途不同分为三大版本,分别是JavaSE. javaEE 和JavaMe Java虚拟机就是一个虚拟的用于执行 .class ...
- 第三次预作业20155231邵煜楠:虚拟机上的Linux学习
java第三次预作业--虚拟机初体验(学习记录) 学习在笔记本上安装Linux操作系统 通过老师给予的官网链接,下载了VirtualBox-5.1.14-112924-win和Ubuntu-16.04 ...
- JAVA作业—字符串操作
------------恢复内容开始------------ ------------恢复内容开始------------ ------------恢复内容开始------------ ------- ...
- 2016福州大学软件工程第三次个人作业-K米软件产品评测
K米软件测评个人作业结果统计如下: 评分标准: 按照栋哥布置的第三次个人作业--K米测评制定评分标准如下: 第一部分:调研.评测 下载并使用,描述最简单直观的个人第一次上手体验. 0.5 按照描述的b ...
- 第五次Java作业
作业一: 文件显示列表框. 增加了下拉式组合框,text区域设置颜色为红色. import javax.swing.*; import java.awt.*; import java.io.File; ...
- 第三次个人作业——关于K米(Andorid)的案例分析
第三次个人作业--关于K米(Andorid)的案例分析 1.K米简介 官方网址:http://www.ktvme.com/ 2.评测 2.1.上手体验 带着找bug的心态,兴致勃勃地开始体验 K米.打 ...
- AVL树(三)之 Java的实现
概要 前面分别介绍了AVL树"C语言版本"和"C++版本",本章介绍AVL树的Java实现版本,它的算法与C语言和C++版本一样.内容包括:1. AVL树的介绍 ...
随机推荐
- python菜鸟学习: 11. 装饰器的基础用法
# -*- coding: utf-8 -*-# decorator# 定义:本质是函数,就是为其他函数添加附件功能# 原则:# 1.不能修改被装饰的函数的源代码# 2.不能修改被装饰的函数的调用方式 ...
- Java的引用(强软弱虚)
Java中引用相关的类 类 名 说明 ReferenceQueue 引用队列 与某个引用类绑定,当引用死亡后会进入这个队列对象标记为垃圾(并不代表回收了)后或虚引用的对象被回收后,会加入到引用队列 H ...
- VMware导入ovf报错
如下图所示报错 在网上查找了一些解决方案,大都说是ovftool版本兼容问题,但是我这里好像并不行,最后的解决的办法是对导入的位置默认不做改动. 报错原因:改变了默认路径.
- ES-分页查询
从一个分页问题开始 做分页查询,当分页达到一定量的时候,报如下错误 Result window is too large, from + size must be less than or equal ...
- 将本地文件推送到Gitee仓库
完整的步骤 1.在gitee中创建仓库 2.下载.安装git 3.推送文件到gitee 推送文件到gitee 1.在要上传的文件夹空白处,点击右键,选择 git bash here 2.输入 git ...
- clickhouse-数据副本踩坑
数据副本--失败,看日志 vim /var/log/clickhouse-server/clickhouse-server.err.log select * from system.replicati ...
- 使用windows切换程序窗口时关闭edg浏览器的多个选项卡
关闭edg浏览器切换程序窗口时展示多个选项卡 一.切换程序窗口的方式 当使用电脑打开了多个程序时,可以通过按住快捷键alt+tab(或者使用笔记本的触控屏,三指左右滑动快捷手势)来切换程序窗口. 二. ...
- VMware VirtualCenter Servere服务不能启动
故障现象现象:VMware VirtualCenter Servere服务不能启动 解决办法:进入%programdata%\VMware\VMwareVirtualCenter\Logs目录下面. ...
- 移动端wifi测试点总结
1.WiFi功能测试: 验证WiFi模块设置(如:添加AP.静态IP及动态IP的设置等)的相应功能是否正常: 2.WiFi特性专项测试: 1)WiFi打开速度或搜索速度的测试:验证WiFi,WiFi打 ...
- JAVA仓库管理系统(附源码+调试)
JAVA仓库管理系统--三只松鼠仓库管理系统功能描述(1)登录模块:登录信息等存储在数据库中(2)基本档案管理模块:供货商管理,销售商管理,货品档案管理,仓库管理(3)采购订货模块:用户可以通过查询条 ...