1.Scanner对象
我们都知道使用”Scanner scanner=new Scanner(System.in);“来进行输入,但如果我们只设置一个scanner对象,
即用来输入String型的数据,又用来输入int型的数据会怎样呢?
答案是出错!每一个Scanner对象只能用来输入一种类型的数据,想输入String就创建一个 stringInput对象只用来输入
String数据。绝对不可以在用来输入其他数据!
我们也可以通过String name=new Scanner(System.in).next();的方法进行输入,每要输入一个数据,就新建
一个Scanner对象。
2.关于static
最基本的我们都知道static方法只能引用static型的数据,而实例方法既能引用一般数据,也能引用static数据。
下面两个例子是我在编程中遇到的关于static问题。
例1:
我们要创建一个test类,可以时刻追踪到test类创建了多少个对象。
class test{
int sum=0;
test(){ ++sum;System.out.ptintln("test类共创建了"+sum+"个对象!");}
}
在主类的方法中测试test test1=new test();test test1=new test();test test1=new test();
当创建一个对象是都会输出“test类共创建了1个对象!”这是为什么呢?
因为每次创建类时sum都会被初始化为0,即每次都会为sum重新开辟一个内存空间,所以每次执行都会输出1.
解决方法:把sum设置为static型, static int sum=0;
这样每次创建test对象时,sum的内存被固定,可以正确记录test创建了多少个对象!
例2:
我们定义一个A类,
A{
private static int sum=0;
public static void addAuto(){sum=sum+10;}
}
然后定义B和C类,B extends A{}, C extends A{}; B和C类和A相同。
这是我们用A的对象引用B C的对象(根据多态性): A a1=new B();A a2=new C();
a1.addAuto();System.out.println(a1.sum);//结果为10
a2.addAuto();System.out.println(a2.sum);//结果为20 ???
我们新建了两个对象,a1和a2的结果应该是相同的,为什么a2中的sum值会是20呢?
因为A中为static方法,我们创建的a1的内存为10;在创建一个a2,此时a2的内存是20,它继承了a1,
所以会在a1的基础上继续+10.
3.关于JAVA类数组
对于一些类似于学生管理系统或者客户管理系统,可能需要我们设置一个数组,用来存一定数量的信息,
用来实现增删改查。如一个student类,来创建一个学生类数组students[];
如果增添一个学生信息,我们是否可以直接利用下面的方法呢?
students[0].setName(new Scanner(System.in).next());//输入一个学生的姓名
students[0].setId(new Scanner(System.in).nextInt());//学号
students[0].setScore(new Scanner(System.in).nextInt());//分数
答案是不能!对于students数组,我们只是声明,并没有为其分配内存空间,所以类似于链表的节点,
我们需要创建一个中介student mid=new student();然后给mid进行上面的输入操作,然后把mid赋给
students[0]。
4.<String.equals()>
对于两个字符判断是否相等,我们习惯用下面的方法:
String str1="JAVA";
String str2=new Scanner(System.in).next();
if(str1==str2){.....}
这种方法是错误的,在我们运行程序过程中不难发现。在JAVA中判断两个字符串相等是不可以用==的方法。
而是通过if(str1.equals(str2)){.....}
我们常用的通过名字来进行查找,删除,修改都会用到。
java项目的技术难点 java技术难点分享
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java项目技术方案
Java项目技术方案书写教程,一目了然。
API Java java -
顺槽|井上集控软件实施困难点
煤矿集控软件实施的主要问题
企业信息化 迭代 生产环境