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. ...
随机推荐
- cordova创建工程添加插件
创建工程 phonegap创建工程 代码 用以创建自己需要的 工程名 ; 报名 ;类名 ; 应用名 cordova create hello com.example.hello HelloWo ...
- MySQL - Mac下安装MySQL
1. 去官网下载dmg的安装文件. 2. 下载完成后,运行安装文件,按步骤进行安装,安装完成后会弹出一个框显示临时密码! 3. 编辑~/.bashrc文件,配置快速启动/停止/重启/cdhome/别名 ...
- selenium webdriver 移动到某个位置,滚动到某个位置
https://blog.csdn.net/xiaosongbk/article/details/70231564
- JS获取元素属性和自定义属性
获取元素的属性分为两种类型: 1-获取元素常见的属性(class,id,type,value……) 2-获取自定义的元素的属性(data-value,data-mess…….) 获取元素的属性,设置元 ...
- 基于Select模型通信程序的编写,编译和执行
任务目标 编写Win32程序模拟实现基于Select模型的两台计算机之间的通信,要求编程实现服务器端与客户端之间双向数据传递.客户端向服务器端发送"计算从1到100的奇数和",服务 ...
- 7-4 python 接口开发(提供mock服务)
1.登录接口开发(数据存在数据库中) 接口开发做mock(模拟功能) tools.py import pymysql def my_db(sql): conn = pymysql.connect(h ...
- nginx配置安装
先安装pcrepcre作用是让Nginx支持Rewrite功能下载地址:https://sourceforge.net/projects/pcre/files/pcre/,选择最新版本进行下载下载之后 ...
- 简单的for循环实现九九乘法表
PHP for 循环 语法 for (init counter; test counter; increment counter) { code to be executed; } 参数: init ...
- pycharm中文乱码问题 总结
前言: 这几天刚刚开始学习python,然后就安装了pycharm,但是那个中文乱码的问题真是让人心烦,在网上找了好久,都写得好乱,今天终于让我解决了,在这里总结一下经验,希望可以帮到你们 问题:如下 ...
- C++ 整型长度的获取 不同的系统
不同的系统中,C++整型变量中的长度位数是不同的,通常,在老式的IBM PC中,int 的位数为16位(与short相同),而在WINDOWS XP,Win7,vax等很多其他的微型计算机中,为32位 ...