1简单地说Java的跨平台性就是指,编译后的Java程序可直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的普及而迅速普及起来。而Java的跨平台性是如何实现的呢?这就要理解Java虚拟机和字节码的概念。
创新互联公司-专业网站定制、快速模板网站建设、高性价比彰武网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式彰武网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖彰武地区。费用合理售后完善,十多年实体公司更值得信赖。
实际上,编译后的Java代码并不是传统的二进制代码(如Windows下的.exe文件),而是Java字节码,这种字节码文件是不能直接在操作系统上执行的。要想在一个操作系统上运行一个Java程序必须有一个中间环节来负责将Java字节码解释成二进制码,这个中间环节就是Java虚拟机(简称JVM)。由于目前大多数操作系统已经实现了JVM,所以Java轻松实现跨平台性。
2方法覆盖要求参数签名必须一致,而方法重载要求参数签名必须不一致。
· 方法覆盖要求返回类型必须一致,而方法重载对此不做限制。
·方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承而来的方法)。
·方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
·父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次
3 我们把用于完成特定功能的若干属性组织成相对独立的属性集合。这种属性的集合就是接口。
定义接口与定义类非常相似。实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类。一个类只能由一个父类,但是它可以同时实现若干个接口。这种情况下如果把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承。与类定义相仿,声明接口时也需要给出访问控制符,不同的是接口的访问控制符只有public一个。用public修饰的接口是公共接口,可以被所有的类和接口使用,而没有public修饰符的接口则只能被同一个包中的其他类和接口利用。接口也具有继承性。定义一个接口是可以通过extends关键字声明该新接口是某个已经存在的父接口的派生接口,它将继承父接口的所有属性和方法。与类的继承不同的是一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表。新接口将继承所有父接口中的属性和方法。
4 public class Main{
public static void main(String []args)
{
for(int i=1; i=100; i++)
{
if(i%3==0i%5!=0i%9!=0)
System.out.println(i);
}
}
}
5 public class Main{
public static void main(String []args)
{
for(int i=1; i=5; i++)
{
for(int j=0; ji; j++)
System.out.print("*");
System.out.println();
}
}
}
14题
1.getContentPane().add(btn)是添加按钮。
2.类实现implements ActionListener那它就是一个监听器;(下一行的this就是监听器)
btn.addActionListener(this)是按钮添加监听器。就是说,点击按钮,触发监听器,监听器自 动调用它的actionPerformed (ActionEvent e)方法处理事件!
3.如果多个按钮的话,你可以根据按钮的名字判断!
下面我写了一个简单的程序,有2个按钮,希望对你有帮助!
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Test extends JFrame implements ActionListener{
public Test(){
JButton b1 = new JButton("b1");
JButton b2 = new JButton("b2");
b1.addActionListener(this);
b2.addActionListener(this);
this.add(b1,BorderLayout.CENTER);
this.add(b2,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("b1")){
System.out.println("you click b1");
}else if(e.getActionCommand().equals("b2")){
System.out.println("you click b2");
}
}
public static void main(String[] args) {
Test t = new Test();
t.setSize(300,200);
t.setVisible(true);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
15题
Rectangle类
public class Rectangle {
private double width;
private double height;
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getArea(){
return width*height;
}
public double getPerimeter(){
return 2*(width+height);
}
public Rectangle(double width, double height) {
super();
this.width = width;
this.height = height;
}
}
测试类
public class Test {
public static void main(String[] args) {
Rectangle r = new Rectangle(3.0, 5.0);
System.out.println("长方形的面积"+r.getArea());
System.out.println("长方形的周长"+r.getPerimeter());
}
}
错在这三行:
System.out.println("园的半径为:"+getRadius);
System.out.println("园的周长为:"+getPerimeter);
System.out.println("园的面积为:"+getArea);
getRadius应该写为getRadius(),即使调用不带参数的函数,也需要显式加一对空括号(),同理getPerimeter和getArea