java课后作业2017.10.20
动手动脑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的更多相关文章
- java作业 2017.10.14
		课后作业一 1.设计思想: (1)通过组合数公式计算:分别输入中的n和k的值.定义一个计算n!的方法,然后调用方法分别计算出n!,k!,(n-k)!,然后通过公式=n!/(k!*(n-k)!)算出的值 ... 
- java课后作业
		课后作业之字串加密: 设计思想: 1.输入要加密的英文子串str 2.定义num=str的字符串长度 3.将字符串转化为单个字符 4.每个字符+3,向后移3个 5.定义str1,将新得到的每个字符加到 ... 
- java课后作业总结
		今天的课后作业是做一个查找一段文章中单词出现的概率,统计并 输出出现概率最高的几个单词.拿到题目,老师还是往常一样提醒着我们先分析题目,构建大概的编程思路.程序需要遇到文本文件的输入输出操作,这一直一 ... 
- java课后作业-5
		作业一:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?“ 程序源代码; public class Lei { /** * @param args */ public static vo ... 
- java课后作业-4
		一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. public class suiji { private static final int N = 200; private ... 
- Java的课后作业——18.10.18
		日期:2018.10.18 星期四 博客期:020 小试验任务: 我就发一下代码好了!!! package test1; import java.util.Scanner; public class ... 
- 10.18号java课后作业代码
		import java.util.*; public class T { public static int a=0; public T() { a++; System.out.println(&qu ... 
- java课后作业10.14
		一.简单总结一下java中类的初始化的规律: 1.类的构造函数优先 2.初始化块儿和定义时候的赋值,这俩个初始化方法优先级是一样的,在程序中谁最后执行,那么程序就采用谁的初始化值. 二.在java中想 ... 
- java课后作业5
		[问题]随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路: 1.申请一个长度为10的数组 2.计算机随机生成10个数,并赋给数组 3. ... 
随机推荐
- CUDA线性内存分配
			原文链接 概述:线性存储器可以通过cudaMalloc().cudaMallocPitch()和cudaMalloc3D()分配 1.1D线性内存分配 1 cudaMalloc(void**,int) ... 
- poj_1730_Perfect Pth Powers
			We say that x is a perfect square if, for some integer b, x = b 2. Similarly, x is a perfect cube if ... 
- Python——列表
			应用场景,要统计大量的人员信息.就可以用列表的形式进行.name = ['邱秀','玄永俊','杨栋豪']查:print(name[2],name[0]) #取号码进行识别print(name[1:3 ... 
- spring-bean(注解方式-管理及依赖注入)
			Bean管理(注解方式) 1.添加注解的依赖包:Spring-aop.jar 2.配置spring的XML文件的引入(查官方源码) 3.开启注解的扫描 <context:component-sc ... 
- 小白对异步IO的理解
			前言 看到越来越多的大佬都在使用python的异步IO,协程等概念来实现高效的IO处理过程,可是我对这些概念还不太懂,就学习了一下. 因为是初学者,在理解上有很多不到位的地方,如果有错误,还希望能够有 ... 
- No module named 'PyQt5.sip'
			使用pyinstaller打包python文件为windows可执行程序可能遇到的问题 pyinstaller yourprogram.py打包的程序双击打开一闪而过,提示上面标题的错误 把pycom ... 
- [KMP][BZOJ1355][Baltic2009]Radio Transmission
			题面 Description 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. Input 第一行给出字符串的长度,\(1 < L ... 
- 可以字符串string转化成list,tuple,dict的eval()方法
			功能:将字符串str当成有效的表达式来求值并返回计算结果. 语法: eval(source[, globals[, locals]]) -> value 参数: source:一个Python表 ... 
- WPF点击不同界面上的按钮实现界面切换
			原文:WPF点击不同界面上的按钮实现界面切换 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/ ... 
- 2 实现第一个Django网站 博客
			-1.理解上下文 render()渲染 request url传来的reuqest x.html 制定返回的模板名称 context 上下文 数据库中 替换数据 0.大框架 1.创建模板 (1 ... 
