动手动脑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. laravel 去掉index.php伪静态

    1,首先,让apache服务器支持rewrite 可以在apache配置文件中定义rewrite规则,是全局的,无论哪个应用都实用 //httpd.config Listen 80 RewriteEn ...

  2. Qt.5.9.6移植

    工具及软件包 交叉编译工具链 arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 软件包 dbus-1.10.0.tar.g ...

  3. Java - 基础数据类型的极值

  4. vim指令,快捷键汇总

    Vim 命令.操作.快捷键全集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vi ...

  5. kali安装ssh服务

    一. kali安装ssh服务 1.修改源 root@DGG:~# vi /etc/apt/sources.list deb http://http.kali.org/kali kali-rolling ...

  6. DB - RDMS - MySQL优化

    慢SQL会消耗打来难过的数据库CPU资源,特别是频繁执行的慢SQL语句,会造成大量任务的堆积,CPU瞬间增大.

  7. linux上面安装svn步骤

    一.安装 使用yum,非常简单 yum install subversion 二.配置 2.1.创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个 ...

  8. L2-032 彩虹瓶 (25 分)

    L2-032 彩虹瓶 (25 分)   彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小 ...

  9. 大话CNN经典模型:LeNet

        近几年来,卷积神经网络(Convolutional Neural Networks,简称CNN)在图像识别中取得了非常成功的应用,成为深度学习的一大亮点.CNN发展至今,已经有很多变种,其中有 ...

  10. 1 web应用

    web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端/服 ...