🚀【新人培养】Assignment ① Warmups
💡实验室18级Java组新生培养相关文档,详情请访问仓库 Java-beginner。
简答
- 为什么 Java 被称作是“平台无关的语言”?
- JDK 和 JRE 的区别是什么?
- 什么是值传递和引用传递?
简答题可以去网上找相关内容,不过要在最后给出参考链接。不能只答一两句话,单纯的复制粘贴网上的答案,要结合自己的理解,必要时可以举例、代码、作图用来解释。
The Fibonacci sequence
13世纪,意大利数学家列奥纳多·斐波那契(Leonardo Fibonacci)为了解释兔子数量的几何增长,设计了一个数学序列,现在以他的名字命名。这个序列中的前两项Fib(0)和Fib(1)分别是0和1,后面的每一项都是前两项的和。因此,斐波那契数列的前几项看起来是这样的:
- Fib(0)=0
- Fib(1)=1
- Fib(2)=1 (0 + 1)
- Fib(3)=2 (1 + 1)
- Fib(4)=3 (1 + 2)
- Fib(5)=5 (2 + 3)
编写一个程序,显示斐波那契数列中的元素,从Fib(0)开始,直到元素小于或等于10,000为止。因此,你的程序应该生成以下示例运行:
Drawing Centered Text
你的任务是写一个 GraphicsProgram
来显示下面这行文字:
Java rocks my socks!
文本应该以 SansSerif
28号字体显示,而且应该在图形界面中水平竖直居中。
Bonus:如果您想在窗口中添加10个标签,所有标签都具有相同的字体、大小,并且水平居中,但具有不同的y坐标,您可以如何组织代码?
Drawing a face
您的工作是绘制一个机器人的脸,如下面的示例运行所示:
因为 Java 基础知识的学习较为乏味,所以我在网上找了一个图形化的库来增加作业的乐趣,这是图形库的 API 文档。
这个图形库对 Java 基本图形库进行了封装,比较简单,做到会用即可,不用深入了解。
以这次作业为例,我简单介绍一下它,比如我们要在屏幕上画一个蓝色的矩形,可以使用 GRect 类绘制:
关于图形界面的宽度和放置元素的位置:
下面这个程序的目的是向您展示一个具有多个关键形状的图形程序。我们实现了两个矩形(一个蓝色和一个黄色),一个红色椭圆,在同一个位置画一个黑色的未填充矩形。在屏幕的中央,我们写着“Programming is Awesome”。
import acm.graphics.*;
import acm.program.*;
import java.awt.*;
public class ProgrammingAwesome extends GraphicsProgram {
// draws the screen in the picture above
public void run() {
// half the height of the screen.
double centerY = getHeight()/2;
// make and add a blue square
GRect blueSquare = new GRect(80, 80); // width and height are 80
blueSquare.setColor(Color.BLUE); // make the square blue
blueSquare.setFilled(true); // fill the square
add(blueSquare, 70, 70); // add the square to the screen
// add a long yellow rectangle
GRect yellowRect = new GRect(40, 360);
yellowRect.setColor(Color.YELLOW);
yellowRect.setFilled(true);
add(yellowRect, 600, 10);
// make and add a red oval
GOval redOval = new GOval(120, centerY); // width and height
redOval.setColor(Color.RED);
redOval.setFilled(true);
add(redOval, 200, 180); // add to location (200, 180)
// make and add a rectangle which fits around the red oval
GRect circleOutline = new GRect(120, centerY);
add(circleOutline, 200, 180);
// add a piece of text
GLabel label = new GLabel("Programming is Awesome!");
label.setFont("Courier-52");
add(label, 10, centerY);
// this object is never added
GRect dudeWheresMyRect = new GRect(600, 600);
dudeWheresMyRect.setFilled(true);
// since it is not added, we will never see it...
}
}
- 版权声明:本文采用知识共享 3.0 许可证 (保持署名-自由转载-非商用-非衍生)
- 发表于 2019-03-12