-
【含答案】第二章 类与对象--2.2-3-方法成员
2020-12-10 11:13:40考虑以下的方法头声明: public void myMethod(int num, char letter) 下面哪个描述是正确的: A 这个方法有个int型的参数,它的形式参数是letter B 这个方法有个int型的参数,它的形式参数是num C 这个方法有个...【含答案】第二章 类与对象--2.2-3-方法成员
(1)单选题考虑以下的方法头声明: public void myMethod(int num, char letter) 下面哪个描述是正确的:
A 这个方法有个int型的参数,它的形式参数是letter
B 这个方法有个int型的参数,它的形式参数是num
C 这个方法有个char型的参数,它的实际参数是myMethod
D 这个方法是一个构造方法
(2)单选题假设有个类已经定义了下述的变量: int num1 = 10; int num2 = 20; String word = new String("exam"); double answer = 25.5; 另外定义了下列方法头: public int stuff(String s, int x, int y) 以下哪个是正确的方法调用:
A num1 = stuff("hello", num1, num2);
B answer = stuff(word, answer, num2);
C num2 = stuff("hello",num1,answer);
D num1 = stuff(num1,num2,answer);
(3)单选题要获取以下MyClass类中member的值,采用的语句是: public class Myclass{ public static int member=1; public static int getmember(){ return member; } };
A MyClass.member()
B MyClass().member
C MyClass.member或者MyClass.getmember()
D MyClass().member或者MyClass().getmember()
(4)单选题在Java中,以下哪一个关键字使类不能派生出子类:
A final
B public
C private
D volatile -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而... -
你必须知道的495个C语言问题
2015-10-16 14:14:28不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的? *3.4 有这样一个巧妙的表达式:a^=b^=a^=b;它不需要临时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副... -
Java封装 练习
2020-07-13 16:38:146、下面关于import,class和package的声明顺序哪个是正确的 A 7、以下代码运行结果为: A 8、下列关于static的说法不正确的是 A 9、关于静态方法和非静态方法,以下描述正确的是 D 10、下面这段代码中,报错的...选择
1、当类中的一个成员方法被下面哪个修饰符修饰后,该方法只能在本类中被访问 B
2、运行以下Java代码,说法正确的是 A
3、java封装的意义(多选)ABC
4、下面代码的运行结果是 A
5、关于package+包名;的说法不正确的是 A
6、下面关于import,class和package的声明顺序哪个是正确的 A
7、以下代码运行结果为: A
8、下列关于static的说法不正确的是 A
9、关于静态方法和非静态方法,以下描述正确的是 D
10、下面这段代码中,报错的地方原因是(多选) AC
编程
package project0713.demo1; public class Book { //私有属性:书名、作者、出版社、价格 private String bookName; private String author; private String publisher; private double price; //通过构造方法实现属性赋值 public Book(){ this.bookName = "Java封装练习"; this.author = "dodoke"; this.publisher = "dodoke"; this.price = 20; } /*通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10 2、限定作者、书名均为只读属性 */ public String getBookName() { return bookName; } public String getAuthor() { return author; } public String getPublisher() { return publisher; } public double getPrice() { return price; } public void setPublisher(String publisher) { this.publisher = publisher; } public void setPrice(double price) { if(price > 10) { this.price = price; } else { System.out.println("价格必须大于10"); this.price = 10; } } //信息介绍方法,描述图书所有信息 public void infomation() { System.out.println("书名:《" + this.getBookName() + "》"); System.out.println("作者:" + this.getAuthor()); System.out.println("出版商:" + this.getPublisher()); System.out.println("价格:" + this.getPrice()); } }
package project0713.demo1; public class BookTest { public static void main(String[] args) { Book dodoke = new Book(); dodoke.setPrice(-1); dodoke.setPublisher("dodoke1"); dodoke.infomation(); } }
package project0713.demo2; /** * 用户类: * 属性:用户名、密码 */ public class User { //设置私有属性 private String userName; private String password; //get/set方法实现对属性的访问 public String getUserName() { return userName; } public String getPassword() { return password; } public void setUserName(String userName) { this.userName = userName; } public void setPassword(String password) { this.password = password; } //设计构造函数实现对属性赋值 public User(String userName, String password) { super(); this.setUserName(userName); System.out.println("用户名:" + userName); this.setPassword(password); System.out.println("密码:" + password); } }
package project0713.demo2; /** * 用户管理类: * 方法:用户名验证 */ public class UserManagement { /*用户信息验证判断两个用户信息是否一致。 当用户名和密码都一致的时候返回:用户名和密码一致, 否则返回:用户名或密码不一致*/ public void Judge(User obj1, User obj2) { boolean userNameJudge = obj1.getUserName().equals(obj2.getUserName()); boolean passwordJudge = obj1.getPassword().equals(obj2.getPassword()); System.out.println("================"); if(userNameJudge && passwordJudge) { System.out.println("用户名和密码一致"); } else { System.out.println("用户名或密码不一致"); } } }
package project0713.demo2; public class UserTest { public static void main(String[] args) { User user1 = new User("Lucy", "123456"); User user2 = new User("Mike", "123456"); UserManagement UM = new UserManagement(); UM.Judge(user1, user2); } }
-
你必须知道的495个C语言问题(高清版)
2010-03-31 16:24:09不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的? 34 *3.4 有这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:18不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的? 34 *3.4 有这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并... -
什么是VLAN
2013-10-23 09:59:12网络管理员只需在网管软件中确定划分VLAN的规则(或属性),那么当一个站点加入网络中时,将会被“感知”,并被自动地包含进正确的VLAN中。同时,对站点的移动和改变也可自动识别和跟踪。 采用这种方法,整个网络... -
web前端day3
2021-01-09 21:41:26若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。 (3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。 以下代码,哪个说法...一、知识整理
二、习题整理
- 类A是类B的友元,类C是类A的公有派生类,忽略特殊情况则
类C不是类B的友元,类b不是类A的友元。
原因:
(1) 友元关系不能被继承。
(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。 - 以下代码,哪个说法正确(B)
A、它会引起栈溢出
B、都不正确
C、它不能编译
D、它会引起段错误
解析:
在类的成员函数中能不能调用delete this?答案是肯定的,能调用,而且很多老一点的库都有这种代码。假设这个成员函数名字叫release,而delete this就在这个release方法中被调用,那么这个对象在调用release方法后,还能进行其他操作,如调用该对象的其他方法么?答案仍然是肯定 的,调用release之后还能调用其他的方法,但是有个前提:被调用的方法不涉及这个对象的数据成员和虚函数。说到这里,相信大家都能明白为什么会这样 了。
根本原因在于delete操作符的功能和类对象的内存模型。当一个类对象声明时,系统会为其分配内存空间。在类对象的内存空间中,只有数据成员和虚函数表指针,并不包含代码内容,类的成员函数单独放在代码段中。在调用成员函数时,隐含传递一个this指针,让成员函数知道当前是哪个对象在调用它。当 调用delete this时,类对象的内存空间被释放。在delete this之后进行的其他任何函数调用,只要不涉及到this指针的内容,都能够正常运行。一旦涉及到this指针,如操作数据成员,调用虚函数等,就会出现不可预期的问题。
为什么是不可预期的问题?delete this之后不是释放了类对象的内存空间了么,那么这段内存应该已经还给系统,不再属于这个进程。照这个逻辑来看,应该发生指针错误,无访问权限之类的令系统崩溃的问题才对啊?这个问题牵涉到操作系统的内存管理策略。delete this释放了类对象的内存空间,但是内存空间却并不是马上被回收到系统中,可能是缓冲或者其他什么原因,导致这段内存空间暂时并没有被系统收回。此时这段内存是可以访问的,你可以加上100,加上200,但是其中的值却是不确定的。当你获取数据成员,可能得到的是一串很长的未初始化的随机数;访问虚函数表,指针无效的可能性非常高,造成系统崩溃。
大致明白在成员函数中调用delete this会发生什么之后,再来看看另一个问题,如果在类的析构函数中调用delete this,会发生什么?实验告诉我们,会导致堆栈溢出。原因很简单,delete的本质是“为将被释放的内存调用一个或多个析构函数,然后,释放内存” (来自effective c++)。显然,delete this会去调用本对象的析构函数,而析构函数中又调用delete this,形成无限递归,造成堆栈溢出,系统崩溃。 - 已有变量定义和函数调用语句,
int a=25;
print_value(&a);
则下面函数的正确输出结果是(D)
void print_value(int* x)
{
printf(“%x\n”,++*x);
}
A、25
B、26
C、19
D、1a
解析:
(1)考察运算符的优先级,*的优先级要比++高,*x = 25;之后由于是先++ 再输出,所以应该输出十进制的26。
(2)考察printf的输出格式问题,好多时候习惯性输出十进制,但是这道题中很明显是“%x”,即十六进制,所以是 【1a】。 - 下列程序的运行结果是1,请将横线处缺失程序补充完整(C)
class B;
class A
{ friend class B;
public:
void Display()
{cout<<x<<endl;}
private:
int x;
};
class B
{ public:
void Set(int i){ =i;}
void Display(){a.Display();}
private:
A a;
};
int main()
{
B b;
b.Set(1);
b.Display();
return 0;
}
A、A::x**
B、A.x
C、a.x
D、x
解析:友元只能通过某具体对象访问所有的数据成员 - 程序运行后的输出结果是( D )
main()
{char s[]=“ABCD”,*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
A、ABCD
BCD
CD
D
B、A
B
C
D
C、B
C
D
D、BCD
CD
D
解析:printf("%s\n",p);//输出字符串
printf("%c\n",p);//输出字符
p=s+1 首地址加1,相当于s[1],%s输出字符串,后循环就是
BCD /n CD/n D/n - 能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是(A)
A、return这二个数
B、形参用数组
C、形参用二个指针
D、用二个全局变量
解析:
一个函数中可以有多个 return 语句,但只有一个 return 语句起作用。执行到哪个 return 语句,就是哪个 return 语句起作用,该 return 语句后的其他语句都不会执行。
return一次只能传回一个值。
- 类A是类B的友元,类C是类A的公有派生类,忽略特殊情况则
-
Java期末考试复习题.pdf
2020-04-19 00:01:431在Java中不属于整型变量的是 Along Bbyte Cdouble Dshort Eint 2以下变量声明正确的是 Aint Int% ;... 3在某个类中存在一个方法void getSort (int x,以下哪个是方 法重载的声明 Apublic getSort (float x) Bint g -
你必须知道的495个C语言问题(PDF)
2009-09-15 10:25:473, 有的为4, 哪个是正确的? . . . . . . . . . . . . . . . . . . . . . 14 3.4 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . .... -
中软Java笔试题
2020-03-27 23:32:214. 当一个类的所有构造器均为私有的,以下哪个描述是正确的? ( C ) A. 不能被其他类实例化 B. 不能被其他类继承 C. 既不能被其他类实例化,也不能被其他类继承 D. 该类必须被final修饰 *强调文本* _强调文本_ ...4. 当一个类的所有构造器均为私有的,以下哪个描述是正确的? ( C ) A. 不能被其他类实例化 B. 不能被其他类继承 C. 既不能被其他类实例化,也不能被其他类继承 D. 该类必须被final修饰 *强调文本* _强调文本_
解析:
使用private关键字声明的构造函数由于类的构造函数时私有的所以此类不能被实例化,同时也不能被继承EffectiveJava第三条用私有构造器或者枚举强化Singleton属性。所谓Singleton属性是指仅仅被实例化一次的类第四条通过私有构造器强化不可实例化的能力。5.下面代码的执行结果是?( D ) public class StringTest { public static void main(String[] args) { String str = "123"; String str1 = new String("123"); String str2 = "123"; System.out.println(str == str1); // false System.out.println(str == str2); // true } } A. true true B. true false C. false false D. false true 6.以下哪个针对默认无参构造器描述是正确的?( A ) A. 均是public构造器 B. 均无访问修饰符 C. 均与所属类访问修饰符一致 D. 由编译器决定
-
java 程序设计试题及答案(8套合辑)
2011-12-26 12:48:426.下列对继承的说法,哪个是正确的? A、子类能继承父类的所有方法和状态 B、子类能继承父类的非私有方法和状态 C、子类只能继承父类public方法和状态 D、子类只能继承父类的方法,而不继承状态 7.下列关于... -
如何测试一个网站
2019-03-08 11:41:00由于这是很早之前记录的笔记,转自哪个网址忘记了,所以特此声明:本篇文章转自一个很牛逼的人哦。 好了,以下是很牛逼的人的劳动成果,我只是Ctrl+C,Ctrl+V。哈哈~~~~~ 查找需求说明、网站设计等相关文档,... -
Day1.JAVA练习总结——2020.03.01
2020-03-01 18:18:49今日练习情况: 洛谷日常编程练习; 牛客网——java知识总结 1.抽象类不能实例化 (C++以前有讲过的呀,忘记了,反思!...A 是抽象父类或接口, B , C 派生自 A ,或实现...问以下哪个说法是正确的?(A ) A.第1... -
java经典面试2010集锦100题(不看你后悔)
2011-02-21 12:43:25A) 在一个类的声明里声明的类,也叫做内部类或嵌套类,内部类可以作为外包类的一个成员使用,可以访问外包类的所有成员,包括私有成员。 B) 内部类的访问权限可以被定义为public、protected、private和default。但是... -
Java面试题
2020-11-23 11:40:53Java面试题**1.选择题****1.1.下列选项中,用于在定义子类时声明父类名的关键字是(C)****1.2....下列外部类定义中,不正确的是(C)****1.7.对于java类型变量char c,short s,float f,double d,表达式c * s + f + d -
为什么会产生依赖冲突?
2020-05-26 17:58:02问:既然maven有”短路优先“和”第一声明“原则来判断需要使用哪个类,为什么还会发生依赖冲突? 答:想要回答这个问题,不妨思考一下以下两个问题 1、“maven的两个原则发生生命周期的哪一个phase?” 2、“发生... -
Java复习题及答案
2008-12-21 00:40:2815、以下哪个接口的定义是正确的?( ) A、 interface A { void print() { } ;} B、 abstract interface A { void print() ;} C、 abstract interface A extends I1, I2 //I1、I2为已定义的接口 { abstract void ... -
flash shiti
2014-03-14 10:32:4116. 下面的语句说法正确的是: □ A. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash MX Player。 □ B. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash 6.0 Player。 □ C. 目前Flash 最新的创作平台... -
java面试宝典
2013-02-28 16:04:01110、.BufferedReader的父类是以下哪个? 25 112、div与span区别? 25 113、html的框架是什么? 25 114、alert怎样换行? 25 115、什么情况用HTML控件,什么情况用WEB控件,并比较两者差别 25 javaScript部分 25 116、... -
千方百计笔试题大全
2011-11-30 21:58:33110、.BufferedReader的父类是以下哪个? 25 112、div与span区别? 25 113、html的框架是什么? 25 114、alert怎样换行? 25 115、什么情况用HTML控件,什么情况用WEB控件,并比较两者差别 25 javaScript部分 25 116、... -
【。net 专业】 面试题
2010-05-19 14:48:46具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 11.详述.NET里class和struct的异同! class:放在 ? struct放在? struct值传递 类与结构有很多... -
java 面试题 总结
2009-09-16 08:45:34继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而... -
C语言FAQ 常见问题列表
2010-10-28 16:41:29不同编译器给出不同的结果, 有的为 3, 有的为 4, 哪个是正确的? o 4.4 这是个巧妙的表达式: a ^= b ^= a ^= b 它不需要临时变量就可以交换 a 和 b 的值。 o 4.5 我可否用括号来强制执行我所需要的计算顺序? o ... -
1.1.5 关于epoll和select的区别,以下哪些说法是正确的 1.1.6 从innodb的索引结构分析,为什么索引的 key 长度不能太长 1.1.7 MySQL的数据如何恢复到任意时间点? 1.1.8 NFS 和 SMB 是最常见的两种 NAS...
-
〖程序设计基础〗练习题3及答案
2011-05-30 14:40:5520.设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。 A) double x(double k ){ i=k; return i; } B) x(double m, double n ){ i=m; j=n; } C) x( ){i=0;j=0 } D) x(double k ){ i=k;... -
C/C++程序员面试指南.杨国祥(带详细书签).pdf
2018-04-08 02:46:41面试题3:下面说法中正确的是哪个 面试题4:写出程序的打印结果 面试题5:访问基类的私有虚函数 9.3 多态 面试题6:简述类成员函数的重写、重载和隐藏的区别 面试题7:简述多态实现的原理 第10章 数据结构 10.1 链表... -
黑马程序员基础测试题答案
2013-12-19 12:08:363、 以下代码哪个是正确的?为什么? a. byte b = 1 + 1; b. byte b = 1; b = b + 1; c. byte b = 1; b = b += 1; d. byte b = 1; b = ++b; 4、 什么情况下适合用UDP协议,什么情况下适合用TCP协议? 5、 ...
-
解决问题:这是解决问题的仓库-源码
-
CentOS 7.8安装Java8
-
Python启蒙到架构师的核心技术精讲课程
-
DHCP 动态主机配置服务(在Linux环境下,配置单网段或跨网段提)
-
RootCluster.github.io:组织网站-源码
-
AIC和RIE法制备的黑硅纳米林
-
bert_sentiment_analysis_finetuning-源码
-
2021 PHP租车系统 毕业设计 毕设源码 源代码使用教程
-
2016年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
市场-源码
-
数据仓库多维数据模型设计
-
阿里集团八年容器化演进之路
-
Linux基础入门系列课程
-
2011年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2019年上半年 网络工程师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2019年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
2010年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
快读函数
-
kafka中kafkaConsumer的poll拉取方法
-
美团外卖Android平台化架构演进实践