blog2
前言:
这段时间做了许多次pta的作业,也在上面进行了期中考试,前两次作业其实还好,难度不是很大,都是一些比较简单和基础的题目,考察的也都是一些简单的输入输出,题量相对多;
后两次的作业就比较复杂了,好些题目都是点线形系列的题目,题量不大,但是测试点多且杂,对图形形状的判断和计算比较侧重,好难啊~
题目的考查形式其实比较单一,无非就是输入点的坐标,判断是否为合法输入,用正确的格式输出题目要求的结果,判断是否能够成指定的图形,或者点是否在图形内部;大作业四的两个分值较小的题目给的提示也很多,根据题目内容一步一步写,其实是非常简单的。
设计与分析:

在该题目中,需要设计Point类与Line类,体现了JAVA设计原则中的单一职责原则。其中,输出格式保留两位小数可以用String类中的方法。
![]()
根据类图和题目信息,其实也比较容易得出结果,但是很遗憾,有些许测试点没有过,
导致没有得到分,也有可能是因为时间有限,基础不够扎实思绪一乱导致后面的题目都没有完成。
public double getX() {
return x;
}
public double getY() {
return y;
}
public void setX(double x) {
this.x = x;
}
public void setY(double y) {
this.y = y;
}
这里利用封装将成员变量私有化,对外提供对应的set ,get方法对其进行访问,对数据的私密性有所提高。以下是运行结果:

if(m > 200 || n > 200 || u > 200 || v > 200 || m < 0 || n < 0 || u < 0 || v < 0 ){
System.out.println("Wrong Format");
}
第二题在第一题的基础上修改,考试的时候没来得及提交

根据类图和题目意思,也不是不能做
public abstract class Element {
public abstract void display();
}
public class Plane extends Element{
private String color;
Plane(){}
Plane(Line line){
this.color=line.getColor();
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void display(){
System.out.println("This Plane's color is:"+getColor());
}
}
这是根据题意创建的一个两个类的共同父类Element(抽象类)以及一个Element类的子类面Plane,将display()方法在该方法中进行声明(抽象方法),将Point类和Line类作为该类的子类。
public class Point {
private double x;
private double y;
Point(){}
Point(double m,double n){
this.x=m;
this.y=n;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
public void setX(double x) {
this.x = x;
}
public void setY(double y) {
this.y = y;
}
public void display(){
System.out.println("横标:"+x+"纵标:"+y);
}
}
这是进一步抽象后的Point类;
以下是运行结果:

采坑心得:
未注意to string方法,导致输出结果乱码,后面再对to string方法进行补充,问题才得以解决。
public String toString(){
return String.format("Rectangle:%.2f",this.getArea());
}
世上无难事,只怕有心人,需要用心去做一件事才可以做好,就好像Java的学习,尽管不容易,但是还可以努力
import java.lang.StrictMath;
import java.util.Formatter;
import javax.lang.model.element.Element;
public class Line extends LuYu.Element{
private Point point1;
private Point point2;
private String color;
Line(){}
Line(Point p1,Point p2,String color){
this.point1=p1;
this.point2=p2;
this.color=color;
}
public Point getPoint1() {
return point1;
}
public Point getPoint2() {
return point2;
}
public String getColor() {
return color;
}
public void setPoint1(Point point1) {
this.point1 = point1;
}
public void setPoint2(Point point2) {
this.point2 = point2;
}
public void setColor(String color) {
this.color = color;
}
public double getDistance(){
double distance;
distance=Math.sqrt((point1.getX()-point2.getX())*(point1.getX()-point2.getX())+(point1.getY()-point2.getY())*(point1.getY()-point2.getY()));
return distance;
}
public void display(){
System.out.println("("+String.format("%.2f",point1.getX())+","+String.format("%.2f",point1.getY())+")");
System.out.println("("+String.format("%.2f",point2.getX())+","+String.format("%.2f",point2.getY())+")");
System.out.println("The line's color is:"+getColor());
System.out.println("The line's begin point's Coordinate is:"+"\n"+"("+String.format("%.2f",point1.getX())+","+String.format("%.2f",point1.getY())+")");
System.out.println("The line's begin point's Coordinate is:"+"\n"+"("+String.format("%.2f",point2.getX())+","+String.format("%.2f",point2.getY())+")");
System.out.println("The line's length is:"+String.format("%.2f",getDistance()));
}
}

根据不断进行的题目练习,从中汲取营养,更加深入地学习。
改进建议:
不管怎么说,最近的实验和做作业,其实都没有做好,不论是什么原因,学习还是应该放在首位,在今后的学习中,我应该更自主地学习JAVA内容,并对自己认为较难的部分的设计多复习巩固,去搞清楚每一个知识点。并且在上课的过程中,应该更认真地进行学习,课后也要及时进行复习,对课内内容进行练习。
总结:
近段时间,由于疫情的原因,大家伙都呆在寝室上网课,但Java的学习没有停止,我们还在马不停蹄的学习,大家都在积极配合防疫工作,但学习也一刻不得耽搁,我们学习了很多不同于c语言的东西,首先引入的是对象和类,我们这门课的名字就叫面向对象的程序设计嘛,所以说后面学习的面向对象这一知识点也是非常重要的;封装我们学习了数据域的封装,类的抽象和封装;继承与多态也没有错过;异常处理和文本I/O为我们降低工作量;抽象类和接口为日后维护和添加删除带来了便捷。
- 注意对象的实例化和构造方法的使用
![]()
-
封装提高了数据的安全性 别人不能够通过 变量名.属性名 的方式来修改某个私有的成员属性且操作难度不高
- 继承与多态提高了程序的拓展性
- 注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类有联系,
3.存在条件:继承关系,方法需要被重写,父类的引用指向子类,也就是A a=B b;(A继承于B)这个意思,
4.什么样子的方法不能被重写
static:它属于类,不属于实例
final: 是一个常量
private:属于私有的,不能被重写 - 异常处理的学习也是不可避免的:
程序在运行过程中发生错误或异常情况是不可避免的,如果每一个运行时错误都由程序员手动控制和处理,其工作量是不可想象的。
Java语言中的异常处理机制就解决的上述问题,把错误与异常的管理带到了面向对象的世界
- 接口作为一个客观的规范,是一类事物所具有的属性的总结,相当于父类。根据接口,就知道一个实例所具有的方法,是一种声明。简而言之,接口的作用是“概括和声明”。

浙公网安备 33010602011771号