java 类及对象的课后作业_JAVA类和对象课后作业

1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”

代码:

//显示类

//YiMingLai 2016.10.19

public class lei {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

lei1 a=new lei1();

lei1 b=new lei1();

b.out();

}

}

class lei1{

static int n=0;

lei1(){

n++;

}

public void out(){

System.out.println("你已经创建了"+n+"个对象!");

}

}

ceb3b6f206e5e2f5c6ee4031b9a2037d.png

2.请输入并运行以下代码,得到什么结果?

public class test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Foo obj1=new Foo();

Foo onj2=new Foo();

System.out.println(obj1==obj2);

}

}

class Foo{

int value=100;

}

结果错误,输出不出来。

原因:

当“==”施加于原始数据类型变量时,是比较变量所保存的数据是否相等

当“==”施加于引用类型变量时,是比较这两个变量是否引用同一对象。

引用代表地址,所以“==”实际上相当于比较两个引用类型变量中保存的对象地址是否相同。

3

.以下代码为何无法通过编译?哪儿出错了?

public class test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Foo obj1=new Foo();

}

}

class Foo{

int value;

public Foo(int intvalue){

value=intvalue;

}

}

结论:

如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

2d70398e4e3f1e12923aa0a659f76816.png

4.运行代码

public class test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

InitializeBlockClass obj=new InitializeBlockClass();

System.out.println(obj.field);//?

obj=new InitializeBlockClass(300);

System.out.println(obj.field);

}

}

class InitializeBlockClass{

{field=200;}

public int field=100;

public InitializeBlockClass(int value){this.field=value;}

public InitializeBlockClass(){}

}

a33f509748ba596d950e49454e16e8b6.png

结论:

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。 执行类的构造函数。

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

5.运行代码

class Root

{

static{

System.out.println("Root的静态初始化块");

}

{

System.out.println("Root的普通初始化块");

}

public Root()

{

System.out.println("Root的无参数的构造器");

}

}

class Mid extends Root

{

static{

System.out.println("Mid的静态初始化块");

}

{

System.out.println("Mid的普通初始化块");

}

public Mid()

{

System.out.println("Mid的无参数的构造器");

}

public Mid(String msg)

{

//通过this调用同一类中重载的构造器

this();

System.out.println("Mid的带参数构造器,其参数值:" + msg);

}

}

class Leaf extends Mid

{

static{

System.out.println("Leaf的静态初始化块");

}

{

System.out.println("Leaf的普通初始化块");

}

public Leaf()

{

//通过super调用父类中有一个字符串参数的构造器

super("Java初始化顺序演示");

System.out.println("执行Leaf的构造器");

}

}

public class TestStaticInitializeBlock

{

public static void main(String[] args)

{

new Leaf();

}

}

9aae4166f9873dba13da76ed3695972c.png

结论:

静态初始化块只执行一次。 创建子类型的对象时,也会导致父类型的静态初始化块的执行。

6.上述神奇代码(StrangeIntegerBehavior.java)输出诡异的结果,原因何在?

结论:因为它们调用的Interger类的方法不同,所以结果不同

7.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

class Example

{

public static void display()

{

System.out.println("类的方法");

}

public void displayOne()

{

System.out.println("对象的方法");

}

public static void main(String[] args)

{

Example.display();

Example e=new Example();

e.displayOne();

e.display();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式二探

什么是正则表达式。 简单说就是按照某种规则匹配符合条件的字符串。 通配符:* https://regexper.com/在线测试正则表达网址。 转载于:https://www.cnblogs.com/tuoxiong/p/6148037.html

java 怎么用 string method return数量_java教程之Map应该怎么用

java教程之Map应该怎么用在自学或者看java教程的时候,大家多多少少都存在着这样或者那样的疑惑,对于这些中软国际小编一直也在整理,今天为大家献上的是关于Map应该怎样去用的一些方法,还是跟过去一样,在这里&#xff0…

使用 ExecuteMultiple 提高批量数据加载的性能

您可以使用 ExecuteMultipleRequest 消息在 Microsoft Dynamics CRM Online 2016 Update 和 Microsoft Dynamics CRM 2016(本地) 中(尤其在 Internet 延迟可能是最大限制因素的 Microsoft Dynamics CRM Online 中)支持更高吞吐批量…

安装ODIS报错 java_(实用技术)大众奥迪ODIS常见问题处理方法

我们在平时使用ODIS过程中常常会遇到一下问题,导致我们不知道应该怎么处理。今天这篇文章中我们将陈列一些常见的问题解答,希望对大家有帮助。一、BCM(BFM)的引导型功能不能用解决方案如果桑塔纳,Rapid,新polo等车型遇到BCM(BFM)的…

gulp入坑系列(1)——安装gulp

前言 好吧,我承认我是为了搞定Sass编译CSS文件的问题,迷一样的着手入gulp的坑,sass和gulp的爬坑历程大概会一起更新。然后感觉这里windows和mac的流程差不多,不过mac的通常在指令前加sudo ,本喵是windows的本本&#x…

java中的sql语句书写_Java中sql语句之通配符*

在java中执行SQL语句要特别注意通配符的问题,否则是不会成功的:在ACCESS中的通配符是*例:select * from student where name like 张*在标准的SQL语言中的通配符是%例:select * from student where name like 张%在java…

Oracle 数据库中对记录进行分页处理

学习到 oracle 的视图的时候,了解到对 Oracle 中数据的记录进行分页处理和 Mysql 提供的 limit 来进行分页处理大有不同,limit 是 mysql 中特有的关键字。 那么在 oracle 中如何实现对记录的分页处理呢? 解决办法:使用 ROWNUM 1.…

python中split啥意思_python中split的用法详解_后端开发

如何用python正则表达式匹配字符串?_后端开发用python正则表达式匹配字符串的方法:1、当匹配单个位置的字符串时,可以使用【(.?)】正则表达式来提取;2、当连续多个位置的字符串匹配时,可以使用【?P…】这个正则表达式…

sublimeText OmniMarkupPreviewer 404

这个错误也是出现的莫名奇妙。 "Error: 404 Not Found Sorry, the requested URL http://127.0.0.1:51004/view/29 caused an error:buffer_id(29) is not valid (closed or unsupported file format)NOTE: If you run multiple instances of Sublime Text, you may want …

python写的程序怎么打包成exe_python--- 如何将自己的程序打包成exe ?

最近用python Tkinter 写了一个看stock的小工具.. . 把它调节成半透明悬浮 你懂得但是每次总用pycharm 或者调python去加载使用多少有些不便,如何打包成exe成了问题。百度一下找了 pyinstaller 感觉使用起来还不错。步骤如下:1.官网下载对应的pyins…

spring定时器,定时器一次执行两次的问题

Spring 定时器 方法一:注解形式 配置文件头加上如下: xmlns:task"http://www.springframework.org/schema/task"http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd 需要 quartz 包 &l…

python处理实例_python处理xml实例

"""Author zyhFileName read_xml_1.pyTime 18-9-26 下午5:19"""from xml.etree import ElementTreeimport ospath (/home/zyh/Desktop/xml17)xml_file_list os.listdir(path)print(xml_file_list)read_list []with open(./riskCar_pic.txt…

SQLite For .Net 已经整合了32位和64位

以前引用SQLite.DLL的时候,如果是winform等桌面程序,还要分32位和64位不一样的DLL,但最近已经整合为一个包了 打开vs的程序包管理器控制器,输入: install-package system.data.sqlite 自动安装即可。 转载于:https:/…

21天通关python 磁力_python 磁力链接搜索器

标签:API作者的 原文 : http://blog.163.com/lixiangqiu_9202/blog/static/535750372014370156424/我看到这个API之后第一个想法就是用python写个小玩意儿1 importrequests2 importjson3 importos4 importcodecs5 importsys67 sys.setrecursionlimit(100…

Java名字的由来

Java语言的历程丰富多彩,被现在众多程序员和企业广泛使用,不用质疑这是Java的领先技术的结果。 Java是Sun公司开发的一种编程语言,Sun公司最初的方向是让Java来开发一些电器装置程序,如:机顶盒、公交卡,Sun…

java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)

Socket是Java网络编程的基础,了解还是有好处的,这篇文章主要讲解Socket的基础编程。Socket用在哪呢,主要用在进程间,网络间通信。本篇比较长,特别做了个目录:一、Socket通信基本示例这种模式是基础&#xf…

Leetcode 279. Perfect Square

Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n. For example, given n 12, return 3 because 12 4 4 4; given n 13, return 2 because 13 4 9. 这道题首先想到的算法是DP。每个perfec…

php文件解锁,php文件锁怎么用

php文件锁怎么用PHP出现文件锁与mysql表锁有大概想的用法,就是同一时间只能让一个人操作,这样就避免了同时有多个人操作同一文件,这样导致数据丢失的情况了。以下是小编为大家搜索整理的PHP文件锁怎么用,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生…

zblog php 外部调用,ZBlogPHP调用指定ID文章的代码GetPost()函数

在zblog主题开发中,我们最常用到的就是文章的调用了,毕竟不管是首页还是内页基本都离不开文章,下面这段代码是用来调用指定ID的文章的代码,一般常用在文章推荐这样的布局当中。用到的函数:GetPost()$aritcle GetPost(…

php 自带缓存,封装ThinkPhP自带的缓存机制

namespace Home\Controller;use Think\Controller;use Think\Think;/*** param string $cache_folder 缓文件夹* param int $cache_create_time 文件缓存时间* example $cache->read_cache() 读取缓存并输出* example $cache->create_cache() 创建缓存文件(放在文件未尾)…