问几个java小问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问几个java小问题相关的知识,希望对你有一定的参考价值。

1、判断题:如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。答案写着这句话是错的,求解释
2、System.out.println(1+""+2+3);为什么这个语句打印出的是123,不是15
3、byte b = 0xa;System.out.println(b);为什么输出结果为10,0xa是什么意思
4、abstract类中可以有private成员吗?
static方法中能直接处理非static的属性吗?
4个题目,每题5分,给解答最详细的那位,谢谢

1、当然不对。
父类的实例可以引用子类的实例,实现程序的多态,这是JAVA的设计思路
反过来 虽然子类是父类的扩展,但是父类并不清楚C是自己的子类,不会把引用传给C,必须经过强制转型才行。

2、表达式中包含一个 “”,代表是字符串,这个表达式的就是字符串的连接

3、0X 代表16进制的的整数,a在16进制中代表的是十进制的10,java程序默认的是10进制,所以打印的b的10进制表示法

4、可以有私有属性,但是不能有私有方法。 抽象类中的 抽象方法不能用private 声明,因为抽象方法是需要子类覆盖的,但是使用private 声明后的方法,子类却无法覆盖
不可以;
static 方法只能调用static 声明的方法和数据
非static方法可以调用static的方法和数据
因为非static的内容 在开辟出内存空间后才能使用,static的类型在对象未被初始化时,就已经存在了。
参考技术A 1.这个显然不对,父类的引用可以指向子类(想想多态),反过来要强制类型转换

2.涉及到了String,这是一个字符串连接操作,结果显然是123

3.0xa是十六进制表示法,0xa就等是十进制10

4.显然是可以有的。抽象类可以在抽象层编程,就是与子类无关的,但是private的属性不能在子类中访问
static方法不能处理非static属性,因为static方法是整个类所有的(不是某个对象),而非static属性的值依赖于具体的对象
参考技术B 1.未知,也许是答案错误吧。我也不是很懂
2.。因为1加后面的“”,让这个打印的字符变成了字符串,之后后面的数字它也被当作字符串自动加了。 你知道的,A +B=AB ,这是字符串的相加。
3.oxa是十六进制,就是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.A就是十进制的10,所以后来的你打印出来的是十进制的10,这里注意了,输入输出如果不强制定义几进制,默认10进制。
4.应该不可以有。因为抽象类就是为了被继承,被实现的。如果没有private,那么它的子类怎么去继承它呢? 但是也有可能有,但是没有意义了,我觉得。比较抽象函数里方法都没有方法体的,是要被子类继承实现的。
static方法的主要作用是在程序编译的时候自动加载,就是不用调用它就可以执行。所以应该不可以。
答案不一定准确。但是2,3可以确保一下。求过~~
参考技术C 1. 答案是正确的,每次new出来的都是一个新的实例,好像和继承没什么关系吧。

2. 在运算符的运算里面,基本数据类型之间,运算中由低级的向高级的隐式转换后进行运算。最后的结果是运算级别最高的数据类型,当然这儿""中是字符串撒,字符串比int类型要大点吧。就是字符串的加法了,就是拼凑那种了。

3. 输入输出默认是十进制,o开头的是十六进制。

4. abastract不能有private成员,我测试过了,错误的; static里面不可以直接访问非static 的属性,但是可以通过对象的形式访问。

JAVA程序的几个小问题,有空的大神帮我看下谢谢啦~也可以让我给你发程序帮忙调一下万分感谢3QQQQQQ

报错:
Description Resource Path Location Type
The operator + is undefined for the argument type(s) Integer, int LoginAction.java /MyOA/src/com/oa/struts/actions line 72 Java Problem

报错:The method setAccessTime(Integer) in the type AbstractUser is not applicable for the arguments (int)

报错:The method inttostr(int) in the type Change is not applicable for the arguments (Integer) UpfileAction.java

有可能是类型不匹配引起的. 最好把下面两个方法申明也贴出来看看.
setAccessTime(Integer) 参数必须是Integer, 不能是int; 必须先转换
Change.inttostr(int) 参数必须是int, 不能是Integer; 也必须先转换

转换方法:
//int到Integer:
Integer A=new Integer(int value);
或者Integer A=Integer.valueOf(a);

//Integer到int:
Integer A=new Integer(5);
int a=A.intValue();追问

谢谢你啦  只差这一个问题了

The operator + is undefined for the argument type(s) Integer, int LoginAction.java /MyOA/src/com/oa/struts/actions line 72 Java Problem

追答

把user.setAccessTime 定义的参数类型列出来看下.

追问

public void setAccessTime(java.lang.Integer accessTime)
this.accessTime = accessTime;

追答

user.setAccessTime(new Integer(user.getAccessTime().intValue()+1));

int和Integer是两种类型, 不能直接加减.

参考技术A 就是你写的那个方法不存在,你的应该是时间属性或者字符串吧?怎么可能直接加1呢
明显是错在这里,你想的太容易了追问

 

 

The operator + is undefined for the argument type(s) Integer, int LoginAction.java /MyOA/src/com/oa/struts/actions line 72 Java Problem

 

能帮我看看怎么改么、?谢啦

以上是关于问几个java小问题的主要内容,如果未能解决你的问题,请参考以下文章

如何学习C++(多问几个为什么)

问几个类似的英语句子(50分急求!)

问几个C语言里很多人没注意过的问题

VSCode JAVA环境配置使遇到的几个小问题

border的应用

第五天休息