📄 shapeexample.java
字号:
import java.util.*;
abstract class shape{
private char drawingChar='*';
protected static final int MIDDLE=40;//only my class and subclass can use it
protected static void drawChars(char ch, int num){
for (int i=0;i<num;i++)
System.out.print(ch);
}
abstract void draw();
/**
* @return the drawingChar
*/
public char getDrawingChar() {
return drawingChar;
}
/**
* @param drawingChar the drawingChar to set
*/
public void setDrawingChar(char drawingChar) {
this.drawingChar = drawingChar;
}
}
class rectangle extends shape{
private int height;
private int width;
public rectangle(int height, int width) {
this.height = height;
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public String toString(){
return "rectangle(height:" + height + ", width:"+ width +", char :"+ getDrawingChar()+")";
}
void draw(){
for (int i=0; i<height; i++)
{
for (int j=0; j<MIDDLE-width/2; j++)
System.out.print(' '); //leading spaces
drawChars(getDrawingChar(),width);
System.out.println(); //new line
}
}
}
class triangle extends shape{
private int height;
public triangle(int height) {
this.height = height;
}
public int getHeight() {
return height;
}
public String toString(){
return "Triangle(height:" + height + ", char :"+getDrawingChar()+")";
}
public void setHeight(int height) {
this.height = height;
}
void draw(){
for (int i=0;i<height;i++)
{ for(int j=0;j<MIDDLE-i;j++)
System.out.print(' ');
drawChars(getDrawingChar(),2*i+1);
System.out.println();
}
}
}
class tree extends shape{
private int height;
private int stem;
public tree(int height,int stem) {
this.stem = stem;
this.height = height;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getStem() {
return stem;
}
public void setStem(int stem) {
this.stem = stem;
}
public String toString(){
return "Tree(height:" + height + ", stem:" + stem + ", char :"+getDrawingChar()+")";
}
void draw(){
for (int i=0;i<height;i++)
{ for(int j=0;j<MIDDLE-i;j++)
System.out.print(' ');
drawChars(getDrawingChar(),2*i+1);
System.out.println();
}
for (int i=0;i<stem;i++)
{ for(int l=0;l<MIDDLE;l++)
System.out.print(' ');
drawChars(getDrawingChar(),1);
System.out.println();
}
}
}
public class shapeExample {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
shape s[] = new shape[5];
Scanner scanner= new Scanner(System.in);
System.out.println("Creating 5 shapes.");
for (int i=0;i<5;i++)
{System.out.println(i+": Type of shape? Rectangle, Triangle, treE (\"R\" or \"T\" or \"E\"):");
String type=scanner.next();
if(type.charAt(0)=='R'||type.charAt(0)=='r')
{
System.out.println("Enter the rectangle's width height (integer integer):");
int width=scanner.nextInt();
int height=scanner.nextInt();
s[i]= new rectangle(height,width);
}
else if(type.charAt(0)=='T'||type.charAt(0)=='t')
{
System.out.println("Enter the triangle's height (integer):");
int height=scanner.nextInt();
s[i]= new triangle(height);
}
else if(type.charAt(0)=='E'||type.charAt(0)=='e')
{
System.out.println("Enter the tree's height stem (integer integer):");
int height=scanner.nextInt();
int stem=scanner.nextInt();
s[i]= new tree(height,stem);
}
}
System.out.println("Enter drawing character for all shapes:");
String ch=scanner.next();
for (int i=0;i<5;i++)
{s[i].setDrawingChar(ch.charAt(0));
System.out.println(s[i]);
s[i].draw();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -