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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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…

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

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

Java名字的由来

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

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

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

php钓鱼怎么使用方法,盘钩使用方法

中钓网资深钓友为大家分享盘钩的使用方法,很难跑鱼的钓鱼新武器——盘钩。盘钩,老瞿最新专利,刚刚开发出来。经过两年的实践,效果大大地好,钩子多,吃进去,要吐出来就难了。管它什么鱼&#xff0…

SQL Server-聚焦APPLY运算符(二十七)

前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始我们将讲述一些SQL Server中早已出现的新语法&#xf…

vs2013和vs2010的配置

win10下vs2013和vs2010的相关配置 ------made by siwuxie095 主要是推荐一些vs2013和vs2010的好用的插件和配色方案,下面主要是以vs2013示例 1、首先是配色方案,一般情况下安装好了IDE之后,为了护眼,都是直接调成了暗色调或深色…

Linux用户与“最小权限”原则

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 作为一个Linux用户来说,我们并不需要特别关心下面的机制。但是,当我们去编写一个Linux应用程序的时候,就要注…

js urlencode 20 php,js实现php函数urlencode

本文介绍了php函数urlencode的js实现方法并比较js和php各编码函数的区别。 通常form表单的enctype类型为 application/x-www-form-urlencoded, 当表单提交后,提交的数据自动被编码, 规则为 除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两…

.NET CORE在ubuntu1604上运行

本文主要描述.NET CORE在Ubuntu上“自包含应用”不一来.NET SDK发布(类似于golang的方式) 1.用rider或者直接用dotnet new方式创建一个项目;可以看到产生了两个文件 dotnet new 会创建一个最新的 project.json 文件,其中包含生成控…

php代码审计靶场,代码审计 | Wavsep靶场审计防御

—————— 昨日回顾 ——————红日安全出品|转载请注明来源文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)—————— ——…

Python 爬虫抓取代理IP,并检测联通性

帮朋友抓了一些代理IP,并根据测试联的通性,放在了不通的文件夹下。特将源码分享 注意: 1,环境Python3.5 2,安装BeautifulSoup4 requests 代码如下: 123456789101112131415161718192021222324252627282930313233343536…

电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...

教学改革广角中国电力教育2009年10月上 总第146期 “电力电子技术”是电气工程及其自动化等专业的重要专业基础课,也是实用性、工程性和综合性很强的课程。作为自动化、电气工程及其自动化等专业的学生,学好这门课程将为后续专业课的学习和今后的工作打下…

php异步轮询如何实现,深入剖析JavaScript异步之事件轮询

本篇文章给大家带来的内容是关于深入剖析JavsScript异步之事件轮询,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。JavsScript 是一门单线程的编程语言,这就意味着一个时间里只能处理一件事,也就是说 …

微信小程序php实现登陆的代码,微信小程序实现微信登录

步骤:1.调用wx.login得到code返回的结果示例:{code:"051nI5Pa1XJkDs0773Pa1OWYOa1nI5PF"errMsg:"login:ok"}2.拿code换取session_key与openid这里使用服务端来请求,以php为例$code $this->input->post(code);$jso…

JavaScript 函数(作用域以及闭包)

JavaScript 函数(作用域以及闭包) ・执行环境及作用域 执行环境定义了变量或函数有权访问的其他数据。 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量或函数都保存在这个对象中, 虽然我们编写的代码无法访问这个对…

《DSP using MATLAB》第6章开始了

看到第6章了,标记一下,全书近一半,继续加油 构建滤波器的三种元件: 下面是函数floor和size的部分帮助截图 转载于:https://www.cnblogs.com/ky027wh-sx/p/6235509.html