一、题目要求
在类中定义一个静态方法printStar,该方法没有返回值,需要一个整形参数number,在主方法中调用这个方法,调用该方法,输入值6和值10时得到下图的结果。
二、解题思路
通过观察我们可以发现每一行前面的空格数等于总行数-当前行数。之后我们又可以得出除了首尾两行,中间的行都是打星号,再打空格最后又是星号。所以可以用if语句进行判断这三种情况:
①第一行时打印一个星号。
②最后一行时打印2xnumber-1(number总行数)个星号。
③其余情况打印一个星号,再打印2xi-3(i为当前行数)个空格,再打印个星号。
流程控制结构清楚后我们就可以开始编写代码啦~
三、代码实现
定义静态printStar方法
class A{
public static void printStar(int number){
for(int i=1;i<=number;i++) {
for(int m=0;m<number-i;m++) {
System.out.print(" ");
}
if(i==1) {
System.out.println("*");
}
else if(i==number) {
for(int n=1;n<=2*number-1;n++) {
System.out.print("*");
}
System.out.println("\n");
}
else {
System.out.print("*");
for(int p=1;p<=2*i-3;p++) {
System.out.print(" ");
}
System.out.println("*");
}
}
}
}
在测试类中调用
public class Test {
public static void main(String[] args) {
//A类静态方法调用(直接调用)
A.printStar(6);
//A类非静态方法调用(需新建对象),即将方法头的static关键字去掉,方法名重命名为unprintStar
A star=new A();
star.unprintStar(10);
}
}
四、运行结果
整体实现就是这样啦~如果还有关于静态、非静态方法不清楚的朋友欢迎留言讨论!