概述
1,下列定义的变量名、类名是否合情合理,请说明理由
private String a;合理但不合法,成员变量a匿名不规范
public class b{}不合法,类名首字母要大写
1,下列代码在一个类中的定义是否合法
public void print(int i) {
...
}
public int print(double f) {
...
}
合法:就是方法名相同,方法参数的个数和类型不同,通过个数和类型的不同来区分不同的函数;
方法的重载跟返回值类型和修饰符无关,Java的重载是发生在本类中的,重载的条件实在本类中有多个方法名相同,
但参数列表不同(可能是,参数个数不同参数类型不同)跟返回值无关;
2,以下代码执行结果为:
{
char p = 'p';
int num=0;
String searchMe = "peter pip······er picked a peck of pickled peppers";
for(int i =0;i<searchMe.length();i++){
if(searchMe.charAt(i) != p){
return;
return是使整个函数返回的,后面的不管是循环里面还是循环外面的都不执行
}
num ++;
}
System.out.println("总共出现了"+num+"次的p");
}
4,输出结果为:
public class VariableDemo {
private Integer age=4;
public void print(){
this.age= 23;
Integer age = 3;
System.out.println(age);
}
public static void main(String[] args) {
new VariableDemo().print();
}
}
答案为:3
5,下面说法是否正确
1. 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法(正确)
2. abstract class在Java语言中体现了一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在"is-a"关系,即父类和派生类在概念本质上应该是相同的。(正确)
3.对于interface来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的, 仅仅是实现了interface定义的契约而已。正确
6,代码书写工厂模式
public abstract class INoodles {/**
* 描述每种面条啥样的
*/
String name;
public abstract void desc();
}
public class LzNoodles extends INoodles {
@Override
public void desc() {
System.out.println("兰州拉面 上海的好贵 家里才5 6块钱一碗");
}
}
public class PaoNoodles extends INoodles {
@Override
public void desc() {
System.out.println("泡面好吃 可不要贪杯");
}
}
public class GankouNoodles extends INoodles {
@Override
public void desc() {
System.out.println("还是家里的干扣面好吃 6块一碗");
}
}
public class SimpleNoodlesFactory {
public static final int TYPE_LZ = 1;//兰州拉面
public static final int TYPE_PM = 2;//泡面
public static final int TYPE_GK = 3;//干扣面
public static INoodles createNoodles(int type) {
switch (type) {
case TYPE_LZ:
return new LzNoodles();
case TYPE_PM:
return new PaoNoodles();
case TYPE_GK:
default:
return new GankouNoodles();
}
}
}
public static void main(String[] args){
INoodles noodle=SimpleNoodlesFactory.createNoodles(SimpleNoodlesFactory.TYPE_LZ);
noodle.desc()}
7,String是否可以被继承?为什么?
不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。
8,接口与抽象类的区别在哪里?共同点在哪里?
相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实 现的方法区 别: 1.接口只有定义,其方法不能再接口中实现,只有实现接口的类才能实现接口中定义的方 法,而 抽象类的方法可以再抽象类 中被实现。
2.接口需要用implements实现,抽象类只能被继承(extends)。
3.设计理念不同,接口是"has - a ",抽象类是"is -a "
4.抽象类可以有静态方法和静态代码块等,接口不可以。
5.接口没有构造方法,抽象类可以有构造方法。
为了加深记忆,下面我举了一个例子
public interface AnimalInteeface {
//在接口中定义的变量 为常量 必须初始化 简写的形式
String NAME ="elephent";
//标准的定义方式 常量的名字一般定义为大写
final static String NAMES="elephont";
public void friendly();
}
public class ButterFly implements AnimalInteeface{
/**
使用接口必须将方法方法全部覆盖一遍
*/
@Overridepublic void shout() {
System.out.println("蝴蝶叫....");
}
@Override
public void friendly() {
System.out.println("动物是人类的朋友....)
}
pubic static void main(String[] args){
ButterFly fly=new ButterFly();//创建实例化对象
fly.shout();//调用方法
fly.friendly()
9,说说你常见的异常,以及解决方式。
1. java.lang.nullpointerexception(空指针)
2. java.lang.arrayindexoutofboundsexception(数组下标越界)
10,补全下面代码
{
String date = "2018-07-05 16:01:23";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//补全代码
Date parseDate=df.parse(date);
System.out.println(parseDate);
}
{
long currentTimeMillis = System.currentTimeMillis();
Date date = new Date(currentTimeMillis);
//将日期格式化为String
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//补全代码
String formatDate=df .format(date);
System.out.println("经过处理过的日期"+formatDate);
}
最后
以上就是昏睡猫咪为你收集整理的java考试题第二周为了加深记忆,下面我举了一个例子9,说说你常见的异常,以及解决方式。的全部内容,希望文章能够帮你解决java考试题第二周为了加深记忆,下面我举了一个例子9,说说你常见的异常,以及解决方式。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复