简答题
抽象类与接口的异同
相同点
- 都不能被实例化
- 接口的实现类或抽象类的子类只有实现了接口或抽象类中的方法后才能实例化
不同点
- 接口只有定义,不能有方法的实现,而抽象类可以有定义与实现
- 接口强调特定功能的实现,而抽象类强调所属关系
JDBC数据库操作步骤
- 加载数据库驱动程序
- 建立数据库连接
- 创建SQL语句
- 执行SQL语句
- 处理结果集
- 关闭连接和释放资源
什么是匿名类,它的含义与定义形式?
匿名类是定义一个没有显示命名的类,它可以用作一个单独的实例或作为其他类的
定义形式:
new <父类或接口> {
};
预处理(PreparedStatement)和Statement的区别?
Statement接口在创建语句对象时,不带参数,进行查询更新操作时,再传入完整的SQL语句。
PreparedStatement接口创建预处理语句对象时,传入带通配符?的SQL语句,查询更新操作时不带参数
Super关键词的作用文章来源:https://www.toymoban.com/news/detail-800908.html
- 访问父类被隐藏的成员变量
- 调用父类中被重写的成员方法
- 调用父类的构造方法
实例变量和类变量的区别文章来源地址https://www.toymoban.com/news/detail-800908.html
- 不同对象的实例变量互不相同
- 所有对象共享类变量
- 直接类名访问类变量
算法题
购物小票:
import java.util.*;
public class FoundPrice {
public static void main(String args[]) {
String s=" 牛奶 :89.8 元,香肠 :12.9 元 啤酒 :69 元 巧克力 :132 元";
String regex="[^0123456789.]" ; // 匹配非数字的正则表达识
String digitMess=s.replaceAll(regex,"*");
StringTokenizer fenxi=new StringTokenizer(digitMess, "*");// 创建 fenxi, 用* 做分隔标记解析 digitMess 中的单词
int number=fenxi.countTokens(); //fenxi 调用 countTokens() 方法返回单词数量
double sum=0;
while(fenxi.hasMoreTokens()) {
String str=fenxi.nextToken(); //fenxi 调用 nextToken() 方法返回单词
System.out.println(str);
sum=sum+Double.parseDouble(str);
}
System.out.println(" 购物小票中的商品种类: "+number+" 种");
System.out.println(" 购物小票中的价格总额: "+sum+"元");
}
}
字符输入输出流:
import java.io.*;
public class FileDemo {
public static void main(String args[]) {
File sourceFile =new File("A.txt");
File targetFile =new File("B.txt");
char c[]=new char[19];
try{
Writer out =new FileWriter(targetFile,true);
Reader in =new FileReader(sourceFile);
int n=-1;
while((n=in.read(c))!=-1){
out.write(c,0,n);
}
out.flush();
out.close();
}catch(IOException e){
System.out.println("Error"+e);
}
}
}
把错别字替换为正确用字的字符串:
import java.util.regex.*;
public class ReplaceErrorWord {
public static void main(String[] args) {
String str = "忘记密码,不要惊慌失错,请登陆www.yy.cn或www.tt.cc";
Pattern pattern;
Matcher matcher;
String regex = "登陆";
pattern = Pattern.compile(regex); //使用regex初始化模式对象pattern
matcher = pattern.matcher(str); //得到检索str的匹配对象matcher
while (matcher.find()) {
String s = matcher.group();
System.out.print(matcher.start() + "位置出现:");
System.out.println(s);
}
System.out.println("将\"登陆\"替换为\"登录\"的字符串:");
String result = matcher.replaceAll("登录");
System.out.println(result);
pattern = Pattern.compile("惊慌失错");
matcher = pattern.matcher(result);
System.out.println("将\"惊慌失错\"替换为\"惊慌失措\"的字符串:");
result = matcher.replaceAll("惊慌失措");
System.out.println(result);
}
}
猜大小:
import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
Random random = new Random();
System.out.println("给你一个1-100之间的整数,猜测这个数");
//[0,100)间的随机整数
int realNumber = random.nextInt(100)+1;
int yourGuess = 0;
System.out.print("输入你猜的数");
yourGuess = reader.nextInt();
while (yourGuess != realNumber) {
if (yourGuess > realNumber){
System.out.println("猜大了,再猜一次:");
yourGuess = reader.nextInt();
}
else {
System.out.println("猜小了,再猜:");
yourGuess = reader.nextInt();
}
}
System.out.println("猜对了!");
}
}
综合题
1)设计接口Phone代表传统手机,在接口中定义receiveMessages()和call()抽象方法。
2)设计接口SmartPhone代表智能手机,在接口中定义faceTime()方法,并使用extends关键字继承Phone接口,使其具有Phone接口的所有功能。
3)设计类MIPhone表示小米手机,类中定义useMIUI()方法,并实现SmartPhone接口的所有方法。
4)编写测试类Example11,测试类中对MIPhone进行实例化,并访问小米手机具有的各种功能。
代码:
interface Phone {
void receiveMessages();
void call();
}
interface SmartPhone extends Phone {
void faceTime();
}
class MIPhone implements SmartPhone {
@Override
public void receiveMessages() {
System.out.println("接收短信");
}
@Override
public void call() {
System.out.println("打电话");
}
@Override
public void faceTime() {
System.out.println("进行FaceTime视频通话");
}
public void useMIUI() {
System.out.println("使用MIUI操作系统");
}
}
public class Example11 {
public static void main(String[] args) {
MIPhone miPhone = new MIPhone();
miPhone.receiveMessages();
miPhone.call();
miPhone.faceTime();
miPhone.useMIUI();
}
}
设计一个广告牌,希望所设计的广告牌可以展示许多公司的广告词。
(1)设计一个接口Advertisement ,有两个方法 showAdvertisement()和getCorpName(),实现接口的类重写方法,给出各个公司的广告词和公司名称。
(2)设计广告牌类AdvertisementBoard,该类有一个show(Advertisement adver)方法,该方法的参数adver可以存放Advertisement接口的实现类的对象,同时,通过adver可以调用Advertisement接口中的两个方法 showAdvertisement()和getCorpName(),显示公司的广告词和公司名称。
(3)分别创建WhiteClound和BlackLandCorp 两个Advertisement接口实现类。
(4)编写主类,输出两公司的广告词。
广告牌:
interface Advertisement {//接口
public void showAdvertisement();
public String getCorpName();
}
class AdvertisementBoard {
Advertisement adver; //声明接口变量
public void setAdver(Advertisement adver) {
this.adver = adver; //adver接收对象的引用
}
public void show() {
if(adver==null) {
System.out.println("广告招商中");
}
else {
adver.showAdvertisement();
}
}
}
class WhiteClound implements Advertisement{
public void showAdvertisement() {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@");
System.out.println("飞机中的战斗机,哎yes!");
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@");
}
public String getCorpName() {
return "白云有限公司";
}
}
class BlackLandCorp implements Advertisement{
public void showAdvertisement() {
System.out.println("****************");
System.out.println("劳动是爹\n土地是妈");
System.out.println("****************");
}
public String getCorpName() {
return "黑土集团";
}
}
public class Show {
public static void main(String[] args) {
AdvertisementBoard board = new AdvertisementBoard();
board.show();
board.setAdver(new BlackLandCorp());
board.show();
board.setAdver(new WhiteClound());
board.show();
}
}
到了这里,关于java期末复习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!