12 changed files with 330 additions and 0 deletions
@ -0,0 +1,51 @@ |
|||
public class ShapeDemo { |
|||
public static void main(String[] args) { |
|||
// 创建不同形状的对象
|
|||
Shape circle = new Circle(); |
|||
Shape rectangle = new Rectangle(); |
|||
|
|||
// 测试drawShape方法
|
|||
drawShape(circle); |
|||
drawShape(rectangle); |
|||
} |
|||
|
|||
/** |
|||
* 调用形状的draw方法 |
|||
* @param s 形状对象 |
|||
*/ |
|||
public static void drawShape(Shape s) { |
|||
s.draw(); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 形状基类 |
|||
*/ |
|||
class Shape { |
|||
/** |
|||
* 绘制方法 |
|||
*/ |
|||
public void draw() { |
|||
System.out.println("绘制形状"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 圆形类 |
|||
*/ |
|||
class Circle extends Shape { |
|||
@Override |
|||
public void draw() { |
|||
System.out.println("绘制圆形"); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 矩形类 |
|||
*/ |
|||
class Rectangle extends Shape { |
|||
@Override |
|||
public void draw() { |
|||
System.out.println("绘制矩形"); |
|||
} |
|||
} |
|||
@ -0,0 +1,70 @@ |
|||
package com.example.datacollect.model; |
|||
import java.util.Date |
|||
public class Article { |
|||
private String title; |
|||
private String url; |
|||
private String content; |
|||
private String author; |
|||
<<<<<<< HEAD |
|||
private Date publishDate; |
|||
======= |
|||
private String Date publishDate; |
|||
>>>>>>> 81e72ba458591eeb2c3e547f9801e93be758f6eb |
|||
public Article(String title, String url, String content,String author,Date publishDate) { |
|||
this.title = title; |
|||
this.url = url; |
|||
this.content = content; |
|||
this.author = author; |
|||
this.publishDate= publishDate; |
|||
} |
|||
|
|||
public String getTitle() { |
|||
return title; |
|||
} |
|||
|
|||
public void setTitle(String title) { |
|||
this.title = title; |
|||
} |
|||
|
|||
public String getUrl() { |
|||
return url; |
|||
} |
|||
|
|||
public void setUrl(String url) { |
|||
this.url = url; |
|||
} |
|||
|
|||
public String getContent() { |
|||
return content; |
|||
} |
|||
|
|||
public void setContent(String content) { |
|||
this.content = content; |
|||
} |
|||
public String getAuthor(){ |
|||
return author; |
|||
} |
|||
public void setAuthor(String author){ |
|||
this.author= author; |
|||
} |
|||
<<<<<<< HEAD |
|||
public Date getPublishDate() { |
|||
return publishDate; |
|||
} |
|||
public void setPublishDate(Date publishDate) { |
|||
this.publishDate = publishDate; |
|||
} |
|||
======= |
|||
>>>>>>> 81e72ba458591eeb2c3e547f9801e93be758f6eb |
|||
@Override |
|||
public String toString() { |
|||
return "Article{" |
|||
+ "title='" + title + '\'' |
|||
+ ", url='" + url + '\'' |
|||
+ '}'; |
|||
} |
|||
<<<<<<< HEAD |
|||
} |
|||
======= |
|||
} |
|||
>>>>>>> 81e72ba458591eeb2c3e547f9801e93be758f6eb |
|||
@ -0,0 +1,17 @@ |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class HistoryCommand { |
|||
// 存储所有输入过的命令
|
|||
private final List<String> commandHistory = new ArrayList<>(); |
|||
|
|||
// 添加命令
|
|||
public void addCommand(String cmd) { |
|||
commandHistory.add(cmd); |
|||
} |
|||
|
|||
// 获取全部历史
|
|||
public List<String> getHistory() { |
|||
return new ArrayList<>(commandHistory); // 防御性拷贝,避免外部修改
|
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
import java.io.BufferedReader; |
|||
import java.io.FileReader; |
|||
import java.io.IOException; |
|||
|
|||
public class ScoreCalculator { |
|||
public static void main(String[] args) { |
|||
String fileName = "scores.txt"; |
|||
int sum = 0; |
|||
int count = 0; |
|||
|
|||
// try-with-resources 自动关闭流,无需手动写 br.close()
|
|||
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { |
|||
String line; |
|||
while ((line = br.readLine()) != null) { |
|||
// 去除字符串前后空格,避免空行或空格影响解析
|
|||
line = line.trim(); |
|||
if (line.isEmpty()) { |
|||
continue; // 跳过空行
|
|||
} |
|||
|
|||
try { |
|||
// 解析成绩为整数
|
|||
int score = Integer.parseInt(line); |
|||
sum += score; |
|||
count++; |
|||
} catch (NumberFormatException e) { |
|||
// 数字格式错误处理
|
|||
System.err.println("警告:无法解析成绩 '" + line + "',跳过该数据"); |
|||
} |
|||
} |
|||
|
|||
// 计算平均分
|
|||
if (count > 0) { |
|||
double average = (double) sum / count; |
|||
System.out.println("平均分:" + average); |
|||
} else { |
|||
System.out.println("文件中没有有效成绩数据"); |
|||
} |
|||
|
|||
} catch (IOException e) { |
|||
// 文件不存在、读取错误处理
|
|||
System.err.println("读取文件时发生错误:" + e.getMessage()); |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
public class ArticleRepository { |
|||
private static final Logger log = LoggerFactory.getLogger(ArticleRepository.class); |
|||
|
|||
public void save(Article article) { |
|||
// 防御检查:空值拦截
|
|||
if (article == null) { |
|||
log.warn("保存文章失败:article为空"); |
|||
return; |
|||
} |
|||
if (article.getTitle() == null || article.getTitle().isBlank()) { |
|||
log.warn("保存文章失败:标题为空"); |
|||
return; |
|||
} |
|||
// 原有保存逻辑
|
|||
} |
|||
} |
|||
@ -0,0 +1,7 @@ |
|||
package exception; |
|||
|
|||
public class ParseException extends CrawlerException { |
|||
public ParseException(String message) { |
|||
super(message); |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
abstract class Area{ |
|||
public abstract double draw(); |
|||
} |
|||
class circle extends Area{ |
|||
double r; |
|||
public double draw() { |
|||
double area = 3.14 * r * r; |
|||
System.out.println(area); |
|||
return area; |
|||
} |
|||
} |
|||
class rectangle extends Area{ |
|||
double l,b; |
|||
public double draw() { |
|||
double area = l * b; |
|||
System.out.println(area); |
|||
return area; |
|||
} |
|||
} |
|||
class tangle extends Area{ |
|||
double b,h; |
|||
public double draw() { |
|||
double area = 0.5 * b * h; |
|||
System.out.println(area); |
|||
return area; |
|||
} |
|||
} |
|||
public class Main{ |
|||
static void main(String[] args) { |
|||
circle c=new circle(); |
|||
c.r=5; |
|||
c.draw(); |
|||
rectangle a=new rectangle(); |
|||
a.l=5; |
|||
a.b=4; |
|||
a.draw(); |
|||
tangle t=new tangle(); |
|||
t.b=5; |
|||
t.h=4; |
|||
t.draw(); |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
public class Pair<K,V>{ |
|||
private K key; |
|||
private V value; |
|||
public Pair(K key,V value){ |
|||
this.key=key; |
|||
this.value=value; |
|||
} |
|||
public K getKey(){ |
|||
return key; |
|||
} |
|||
public V getValue(){ |
|||
return value; |
|||
} |
|||
public void setKey(K key){ |
|||
this.key=key; |
|||
} |
|||
public void setValue(V value){ |
|||
this.value=value; |
|||
} |
|||
public static <K,V> Pair<V,K> swap(Pair<K,V> pair){ |
|||
return new Pair<>(pair.getValue(), pair.getKey()); |
|||
} |
|||
} |
|||
@ -0,0 +1,31 @@ |
|||
abstract class Animal { |
|||
// 抽象方法:动物叫声
|
|||
public abstract void makeSound(); |
|||
} |
|||
|
|||
// 2. Swimmable 接口
|
|||
interface Swimmable { |
|||
// 游泳方法
|
|||
void swim(); |
|||
} |
|||
|
|||
// 3. Dog 类:继承 Animal,实现 Swimmable
|
|||
class Dog extends Animal implements Swimmable { |
|||
@Override |
|||
public void makeSound() { |
|||
System.out.println("小狗汪汪叫:汪汪汪!"); |
|||
} |
|||
|
|||
@Override |
|||
public void swim() { |
|||
System.out.println("小狗在水里狗刨式游泳!"); |
|||
} |
|||
} |
|||
|
|||
// 4. Cat 类:继承 Animal,不实现 Swimmable
|
|||
class Cat extends Animal { |
|||
@Override |
|||
public void makeSound() { |
|||
System.out.println("小猫喵喵叫:喵喵喵!"); |
|||
} |
|||
} |
|||
@ -0,0 +1,23 @@ |
|||
public class AnimalTest { |
|||
public static void main(String[] args) { |
|||
// 多态方式创建对象
|
|||
Animal dog = new Dog(); |
|||
Animal cat = new Cat(); |
|||
|
|||
// 调用 makeSound 方法(多态体现)
|
|||
System.out.println("=== 动物叫声测试 ==="); |
|||
dog.makeSound(); |
|||
cat.makeSound(); |
|||
|
|||
// 测试 Swimable 接口(Dog 能游泳,Cat 不能)
|
|||
System.out.println("\n=== 游泳能力测试 ==="); |
|||
if (dog instanceof Swimmable) { |
|||
((Swimmable) dog).swim(); |
|||
} |
|||
if (cat instanceof Swimmable) { |
|||
((Swimmable) cat).swim(); |
|||
} else { |
|||
System.out.println("小猫不会游泳哦!"); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue