用java程序实现三角形的输出,要求如下
static,protected,abstract,transient,final
2. 有一段代码,如下所示,程序运行的结果为什么为false?如何通过override修改value类,使结果为true。
//Equals2.java
class value{ int i;}
public class Equals2
{
public static void main(String[] args)
{
value n1=new value();
value n2=new value();
n1.i=100;
n2.i=100;
System.out.println(n1.equals(n2));
}
}
如果这两个问题解决了,也可以拿到奖赏分数。 展开
class NoParamException extends Exception{
public NoParamException(String message)
{super(message);}
}
class InputDecimalException extends Exception{}
public class HOMEWORK
{
public static float getHeight(String args[])throws NoParamException,InputDecimalException
{
float m;
if(args.length==0)
throw new NoParamException("NoParamException occures!");
m=Float.parseFloat(args[0]);
if((int)m!=m)throw new InputDecimalException();
return m;
}
public static void main(String args[])
{
float H=0;
try{
H=getHeight(args);
}
catch(NoParamException e){
System.out.println("NoParamException occures,please input again!");
}
catch(InputDecimalException e){
System.out.println("InputDecimalException occures,please input again!");
}
catch(Exception e){
System.out.println("NoParamException occures,please input again!");
}
for(int i=1;i<=H;i++)
{
for(int j=0;j<H-i;j++)
System.out.print(" ");
for(int k=0;k<2*i-1;k++)
System.out.print("*");
System.out.print("\n");
}
}
}
可以进行两种异常控制,一种是无参数异常,一种是输入小数的异常
这是运行过程,记得程序中的publi class名字改过来,与文件名一样
System.out.println("请输入层数:");
Scanner input = new Scanner(System.in);
layer = input.nextInt();
for(i=0;i<layer;i++) {
for(j=0;j<layer-i;j++)
System.out.print(" ");//输出前面的空格
for(j=0;j<i+1;j++)
System.out.print(i+1+" ");//输出数字和空格
System.out.println();
}
三角形代码
b.id=a.id;
protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
abstract:
1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。
注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。
abstract修饰符在修饰类时必须放在类名前。
transient Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的
class A implements Serializable {
private String name;
transient private String address;
}
那么你在串行化(IO流等)A类时 给它的name和address属性赋值,那么你在提取A时,拿到了name属性,但是却拿不到address属性。
final 修饰类 :表示该类不能被继承,是顶级类。
修饰方法:表示不能重写。
修饰变量:表示不能修改,可在构造方法中赋值。
2 n1.equals(n2) quals比较的是2个对象的内容,虽然是相同的数据类型,但是它们是两个对象
可以通过继承父类方法,在子类里面把 i 强转 成String型,这样就能为true;
至于你那个三角形,给你个思路吧,我以前也是你这样过来的!
这个要用到双重循环,外循环控制行数,内循环控制*;
通过你的行数来循环,如图:有5行,每一行从上到下,依次减少一个键位 也就是 空格 一样
* 的话 是*+2的,主要是找好规律。
北大青鸟的吗?
public static void main(String[] args) {
for(int i=0;i<5;i++) {
for(int j=0;j<5-i;j++)
System.out.print(" ");
for(int j=0;j<i+1;j++){
if(j==i){
System.out.print("#");
}
else{
System.out.print("#"+"#");
}
}
System.out.println();
}
}
}