动手动脑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. 第1章-如何使用本书—零死角玩转STM32-F429系列

    第1章    如何使用本书 1.1    本书的参考资料 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com ...

  2. django中介模型,CBV模型,及logging日志配制

    1.中介模型 中介模型,这个是在我们创建表格时,多对多添加的时候应用到的,通过制定ManyToManyField字段中的through参数来定义,为两者的关系新建一个中介class 为什么会产生这个中 ...

  3. PowerDesigner 图表导出Excel格式

    快捷方式打开运行界面:ctrl+shift+X '*************************************************************************** ...

  4. IDEA 编辑框光标闪烁

    依次打开如下菜单: File -> Settings -> Editor -> General -> Appearance -> 选中 Caret blinking (m ...

  5. 微信网页授权access_token与基础支持的access_token

    问题1:网页授权access_token与分享的jssdk中的access_token一样吗? 答:不一样.网页授权access_token 是一次性的,而基础支持的access_token的是有时间 ...

  6. 根据html页面模板动态生成html页面(c#类)

    本文转载自:http://www.cnblogs.com/yuanbao/archive/2008/01/06/1027985.html点击打开链接 一直以为动态生成静态页面不好做,昨天在网上找了下, ...

  7. laravel查看执行的sql语句

    方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 SQL 语句,我们简单在 routes.php 做个实验即可: //app/Http ...

  8. linuxC编程介绍

    第一步:写完程序 /first.c/ #include <stdio.h> int main() { printf("hello,welcome to the LinuxC!\n ...

  9. Gson转Map时,Int会变成double解决方法

    package com.cdy.demo; import java.lang.reflect.Type; import java.util.HashMap; import java.util.Map; ...

  10. Python学习之编程基础

    学习Python之前首先我们要了解Python是什么? question 1:Python是什么? answer:Python是一门编程语言.(什么是编程语言?) 语言:语言是不同个体之间沟通的介质. ...