动手动脑1:

public class Test
{
public static void main(String args[])
{
Foo obj1=new Foo();
}
}
class Foo
{
int value;
public Foo(int initvalue)
{
value=initvalue;
}
}

报错原因:调用自定义的构造方法,没有正确的实参。

动手动脑2——静态初始化块的执行顺序:

静态初始化块只执行一次,且如果有父类先执行父类中的静态初始化块,然后在执行子类中的静态初始化块。

java字符段初始化规律:

public class InitializeBlockDemo

{

/**
* @param args
*/
public static void main(String[] args)

{

InitializeBlockClass obj=new InitializeBlockClass();
System.out.println(obj.field);

obj=new InitializeBlockClass(300);
System.out.println(obj.field);
}

}

class InitializeBlockClass

{
//下面这句在初始化块之前与之后,会影响到field字段的初始值
public int field=100;
{
field=200;
}
//public int field=100;
public InitializeBlockClass(int value)
{
this.field=value;
}
public InitializeBlockClass()
{

}
}

若有构造函数内有完成了初始化的作用,则初始化的结果为构造函数中初始化的值。

若构造函数没有完成初始化,字段初始值和初始化块都存在,则初始化的结果为这两个其中顺序在下边的初始化值。

如何在静态方法中访问类的实例成员:

在静态方法中实例化一个对象,在通过对象调用实例成员。

代码:

public class Homework
{
public static void main(String args[])
{
A a=new A();
a.set();
}

}
class A
{
static int id=1;
int age=2;
static public void set()
{
A a=new A();
System.out.println("id:"+id);
a.display();
}
public void display()
{
System.out.println("age:"+age);
}
}

结果截图:

 使用类的静态字段和构造方法,跟踪类所创建的对象的个数:

在类中定义一个静态的属性number。定义构造函数,因为每次创建对象时自动调用构造函数,所有在构造函数中记录number的变化:number++

再定义一个显示个数的方法display,因为需要事先创建一个对象才能调用dispaly方法,所以要减去一个,即dispaly中输出(number-1)。

import java.util.Scanner;
public class Homework
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in);
A b=new A();
while(true)
{
int choice;
System.out.println("1:创建一个对象");
System.out.println("2:查看已创建对象的个数");
System.out.println("3:退出");
System.out.println("请选择:");
choice=input.nextInt();
if(choice==1)
{
A a=new A();
}
else if(choice==2)
{
b.display();
}
else if(choice==3)
{
System.exit(0);
}
}
}
}
class A
{
static int number=0;
public A()
{
number=number+1;
}
public static void display()
{
System.out.println("已创建的对象个数:"+(number-1));
System.out.println();
}
}

结果截图:

Integer判等:

public class StrangeIntegerBehavior
{

public static void main(String[] args)
{
Integer i1=100;
Integer j1=100;
System.out.println(i1==j1);

Integer i2=129;
Integer j2=129;
System.out.println(i2==j2);

}

}

结果第一个 true,第二个false.

在用Inter j1=number;时调用了public static Integer valueOf(int i)方法,这个方法对于-128<=i<=127的时候是使用的int原始数据类型,超出这个范围后则创建一个对象。所以i1和j1比较的是数值,i2和j2比较的是地址。

java课后作业2017.10.20的更多相关文章

  1. java作业 2017.10.14

    课后作业一 1.设计思想: (1)通过组合数公式计算:分别输入中的n和k的值.定义一个计算n!的方法,然后调用方法分别计算出n!,k!,(n-k)!,然后通过公式=n!/(k!*(n-k)!)算出的值 ...

  2. java课后作业

    课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ...

  3. java课后作业总结

    今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ...

  4. java课后作业-5

    作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ...

  5. java课后作业-4

    一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ...

  6. Java的课后作业——18.10.18

    日期:2018.10.18 星期四 博客期:020 小试验任务: 我就发一下代码好了!!! package test1; import java.util.Scanner; public class ...

  7. 10.18号java课后作业代码

    import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ...

  8. java课后作业10.14

    一.简单总结一下java中类的初始化的规律: 1.类的构造函数优先 2.初始化块儿和定义时候的赋值,这俩个初始化方法优先级是一样的,在程序中谁最后执行,那么程序就采用谁的初始化值. 二.在java中想 ...

  9. java课后作业5

    [问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ...

随机推荐

  1. Linux内存管理 —— 内核态和用户态的内存分配方式

    1. 使用buddy系统管理ZONE我的这两篇文章buddy系统和slab分配器已经分析过buddy和slab的原理和源码,因此一些细节不再赘述.所有zone都是通过buddy系统管理的,buddy ...

  2. centos install rtl8188ce driver

    1.导入公钥,注意大小写. rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装ELRepo库. rpm -Uvh http://elr ...

  3. python的**和*

    1.**两个乘号就是乘方,比如2**4,结果就是2的4次方,结果是16一个乘号*,如果操作数是两个数字,就是这两个数字相乘,如2*4,结果为8*如果是字符串.列表.元组与一个整数N相乘,返回一个其所有 ...

  4. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  5. Maven学习总结(10)

    本文通过一个例子来介绍利用maven来构建一个多模块的jave项目.开发工具:intellij idea. 一.项目结构 multi-module-project是主工程,里面包含两个模块(Modul ...

  6. jstree 全部选中事件 select_all 使用

    select_all function of jstree not checked node for jstree-open branch of ajax-jstree 很尴尬啊,找了整个百度,360 ...

  7. 《Redis设计与实现》- AOF持久化

    1. AOF持久化 Redis AOF 持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的. 2. RDB持久化与AOF持久化的区别 RDB持久化 RDB持久化通过保存数据中的键值对来记 ...

  8. 【转载】CentOS7.0下安装Telnet

    1..先检查CentOS7.0是否已经安装以下两个安装包:telnet-server.xinetd.命令如下: # rpm -qa telnet-server # rpm -qa xinetd 如果没 ...

  9. 1016-02-首页17-添加转发微博控件-计算转发配图的 Frame-------打印出 被转发微博的模型

    说明:HWStatus为微博模型,_retweeted_status 为返回的数据( 一条微博模型)里面的一个属性,_retweeted_status 不为空表示此微博是否转发了其他微博._retwe ...

  10. 树上dfs+思维

    #include<cstdio> ; int cnt,head[N],n; int size[N],num[N]; void init() { cnt = ; ;i<N;i++) h ...