目录
参数传递例题
package demo211130;
public class TestA {
private String s = "abc";
public static void main(String[] args) {
TestB.set(new TestA().s + "1");//"abc1"
}
}
public class TestB {
private String owner;
private TestB(String owner) {
this.owner = owner;
}
public static void set(String string) {
TestB b = new TestB(string + "2");// abc12
System.out.println(b.owner + "4");//abc124
}
}
package demo211130;
封装例题
封装例题--------业务(功能)类
主方法
import java.util.ArrayList;
import java.util.Scanner;
//(业务)功能类
public class QuestionTest {
public static void main(String[] args) {
QuestionTest qt = new QuestionTest();
qt.start();
}
Scanner scan = new Scanner(System.in);
public void start() {
while (true) {// 业务逻辑
System.out.println("--------------------------------");
System.out.println("-------请选择业务------------------");
System.out.println("-----1-试题录入(题号不能重复)---------");
System.out.println("-----2-试题查询(按照题号查询)---------");
System.out.println("-----3-试题删除(按照题号删除)---------");
System.out.println("-----4-试题修改(按照题号修改)---------");
System.out.println("-----5-查看试题(查看全部)------------");
System.out.println("-----6-排序试题(按照题号排序)---------");
System.out.println("-----7-排序试题(按照分数排序)---------");
System.out.println("-----8-回答试题--------------------");
System.out.println("-----请输入序号---------------------");
switch (Integer.valueOf(scan.nextLine())) {
case 1:
inputs();
break;
case 2:
getModelById();
break;
case 3:
delModelById();
break;
case 4:
updModelById();
break;
case 5:
print();
break;
case 6:
sortById();
break;
case 7:
sortByValue();
break;
case 8:
answerTitle();
break;
}
System.out.println("****是否退出系统?y/n*****");
if ("y".equalsIgnoreCase(scan.nextLine()))
break;
}
}
1-试题录入
public void inputs() {
while (true) {
input();
System.out.println("是否继续输入?y/n");
if ("n".equalsIgnoreCase(scan.nextLine()))
break;
}
}
public boolean isExist(int id) {
for (QuestionModel model : list) {
if (model.getId() == id) {
System.out.println("该题号已存在!");
System.out.println("请重新输入题号:");
return true;
}
}
return false;
}
ArrayList<QuestionModel> list = new ArrayList<>();
public void input() {
QuestionModel model = new QuestionModel();
int id = 0;
do {
System.out.println("请输入题号:");
id = Integer.parseInt(scan.nextLine());
} while (isExist(id));
model.setId(id);
System.out.println("请输入题目:");
String title = scan.nextLine();
model.setTltle(title);
System.out.println("请输入选项A:");
String optionA = scan.nextLine();
model.setOptionA(optionA);
System.out.println("请输入选项B:");
String optionB = scan.nextLine();
model.setOptionB(optionB);
System.out.println("请输入选项C:");
String optionC = scan.nextLine();
model.setOptionC(optionC);
System.out.println("请输入选项D:");
String optionD = scan.nextLine();
model.setOptionD(optionD);
System.out.println("请输入答案:");
String answer = scan.nextLine();
model.setAnswer(answer);
System.out.println("请输入分值:");
int value = Integer.parseInt(scan.nextLine());
model.setValue(value);
list.add(model);
}
2-试题查询
public void getModelById() {
System.out.println("请输入要查询的题目的题号:");
int id = Integer.parseInt(scan.nextLine());
for (QuestionModel model : list) {
if (model.getId() == id) {
System.out.println("你要找的题目存在");
System.out.println("题号:" + model.getId());
System.out.println("题目:" + model.getTltle());
System.out.println("选项A:" + model.getOptionA());
System.out.println("选项B:" + model.getOptionB());
System.out.println("选项C:" + model.getOptionC());
System.out.println("选项D:" + model.getOptionD());
System.out.println("答案:" + model.getAnswer());
System.out.println("分值:" + model.getValue());
return;
}
}
System.out.println("你要找的题目不存在");
}
3-试题删除
public void delModelById() {
System.out.println("请输入要删除的题目的题号:");
int id = Integer.parseInt(scan.nextLine());
for (int i = list.size() - 1; i >= 0; i--) {
QuestionModel model = list.get(i);
if (model.getId() == id) {
list.remove(i);
System.out.println("该题号(" + id + ")已删除!");
return;
}
}
System.out.println("你要删除的题目不存在");
}
4-试题修改
public void updModelById() {
System.out.println("请输入要的题目的题号:");
int id = Integer.parseInt(scan.nextLine());
for (int i = 0; i < list.size(); i++) {
QuestionModel model = list.get(i);
if (model.getId() == id) {
System.out.println("该题目信息如下");
System.out.println("题号:" + model.getId());
System.out.println("题目:" + model.getTltle());
System.out.println("选项A:" + model.getOptionA());
System.out.println("选项B:" + model.getOptionB());
System.out.println("选项C:" + model.getOptionC());
System.out.println("选项D:" + model.getOptionD());
System.out.println("答案:" + model.getAnswer());
System.out.println("分值:" + model.getValue());
System.out.println("请进行修改");
System.out.println("请输入题目:");
String title = scan.nextLine();
model.setTltle(title);
System.out.println("请输入选项A:");
String optionA = scan.nextLine();
model.setOptionA(optionA);
System.out.println("请输入选项B:");
String optionB = scan.nextLine();
model.setOptionB(optionB);
System.out.println("请输入选项C:");
String optionC = scan.nextLine();
model.setOptionC(optionC);
System.out.println("请输入选项D:");
String optionD = scan.nextLine();
model.setOptionD(optionD);
System.out.println("请输入答案:");
String answer = scan.nextLine();
model.setAnswer(answer);
System.out.println("请输入分值:");
int value = Integer.parseInt(scan.nextLine());
model.setValue(value);
return;
}
}
System.out.println("你要删除的题目不存在");
}
5-输出全部试题
public void print() {
for (QuestionModel model : list) {
System.out.println("题号:" + model.getId());
System.out.println("题目:" + model.getTltle());
System.out.println("选项A:" + model.getOptionA());
System.out.println("选项B:" + model.getOptionB());
System.out.println("选项C:" + model.getOptionC());
System.out.println("选项D:" + model.getOptionD());
System.out.println("答案:" + model.getAnswer());
System.out.println("分值:" + model.getValue());
}
}
6-排序试题(题号)
public void sortById() {
int len = list.size();
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
QuestionModel model1 = list.get(j);
QuestionModel model2 = list.get(j + 1);
if (model1.getId() > model2.getId()) {
list.set(j, model2);
list.set(j + 1, model1);
}
}
}
}
7-排序试题(分值)
public void sortByValue() {
int len = list.size();
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
QuestionModel model1 = list.get(j);
QuestionModel model2 = list.get(j + 1);
if (model1.getValue() > model2.getValue()) {
list.set(j, model2);
list.set(j + 1, model1);
}
}
}
}
8-回答试题
public void answerTitle() {
// 分数
int score = 0;
// 正确数
int trueTitle = 0;
for (QuestionModel model : list) {
System.out.println("题号:" + model.getId());
System.out.println("题目:" + model.getTltle());
System.out.println("选项A:" + model.getOptionA());
System.out.println("选项B:" + model.getOptionB());
System.out.println("选项C:" + model.getOptionC());
System.out.println("选项D:" + model.getOptionD());
System.out.println("分值:" + model.getValue());
System.out.print("请输入你的答案:");
Scanner Scan = new Scanner(System.in);
String inputAnswer = scan.nextLine();
if (model.getAnswer().equalsIgnoreCase(inputAnswer)) {
score += model.getValue();
trueTitle++;
}
}
System.out.println("得分为:" + score + "\t正确数为:" + trueTitle);
}
package demo211130;
封装例题--------封装类
//实体类
//试题
public class QuestionModel {
private int id;// 题号
private String tltle;// 题目
private String optionA;// 选项A
private String optionB;// 选项B
private String optionC;// 选项C
private String optionD;// 选项D
private String answer;// 答案
private int value;// 分值
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTltle() {
return tltle;
}
public void setTltle(String tltle) {
this.tltle = tltle;
}
public String getOptionA() {
return optionA;
}
public void setOptionA(String optionA) {
this.optionA = optionA;
}
public String getOptionB() {
return optionB;
}
public void setOptionB(String optionB) {
this.optionB = optionB;
}
public String getOptionC() {
return optionC;
}
public void setOptionC(String optionC) {
this.optionC = optionC;
}
public String getOptionD() {
return optionD;
}
public void setOptionD(String optionD) {
this.optionD = optionD;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
package demo211130;
继承
//继承
// 子类extends 父类
//派生类/下级类
//基类/超类/上级类
// 继承本质:包含并且可以使用所继承的类中可访问的成员内容
// 默认规则:直接继承 extends object
// object=所有类的基类/超类
// 继承的特点
// 1-子类可以使用父类中的可访问的成员
// 2-子类可以自定义成员
// 3-子类可以重写父类方法
// 4-类与类只能是单继承或间接继承
// 5-继承中-类与类之间的包含关系
public class TestC {
public static void main(String[] args) {
TestC tc1 = new TestC();
tc1.setId(100);
System.out.println(tc1);
//String str = tc1.toString();
//System.out.println(str);
System.out.println(tc1.toString());
TestC tc2 = new TestC();
tc2.setId(100);
System.out.println(tc1.equals(tc2));// false
int hash = tc1.hashCode();// 内存地址 HashMap HahSet
// tc1.clone();//深拷贝、浅拷贝
// tc1.getclass()//类的描述//反射
// tc1.notify();//多线程
// tc1.notifyAll();
// tc1.wait();
// tc1.finalize();//不推荐
// 促进GC-垃圾自动回收回收机制
}
@Override
public boolean equals(Object obj) {
TestC tc = (TestC) obj;// 向下转型
return this.id == tc.id;// this关键字用法
}
private int id;
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
// 重写方法的调用:
// 若对象所调用的方法已重写,则调用的是子类重写的方法,否则调用的是父类中的方法
// 重载 overloa:同一个文件当中,方法名相同,参数不同
// 重写 overla(覆盖):子类中存在父类中(两个文件),方法定义结构相同同的方法(暂时简单理解)
// 注解annotation
@Override // 重写的方法
public String toString() {
return "TestC [id=" + id + "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
继承代码体现
package demo211130;
public class TestD {
}
class Automoblie1 {
int length;
int width;
int height;
String trademark;
String licenceplate;
}
class Bus1 extends Automoblie1 {
// int length;
// int width;
// int height;
// String trademark;
// String licenceplate;
}
class Car1 extends Automoblie1 {
// int length;
// int width;
// int height;
// String trademark;
// String licenceplate;
}