以下是代码的完整实现,可以在控制台输出 "Hello world":
interface Inter { void show();
}class Outer { public static Inter method() { return new Inter() { public void show() {
Systemoutprintln("Hello world");
}
};
}
}class Inner { public static class InnerDemo { public static void main(String[] args) {
Outermethod()show();
}
}
}
这个程序中定义了一个接口 Inter 和一个外部类 Outer。Outer 类中有一个静态方法 method,该方法返回了一个实现了 Inter 接口的匿名内部类的实例,实现了接口中的 show() 方法。
在 InnerDemo 类的 main 方法中调用 Outermethod() 方法并且调用返回实例的 show() 方法,因此将会在控制台上打印出 "Hello world"。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Java的特点:
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点;下面我们来具体介绍一下:
1、简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的 *** 作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2、面向对象
Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3、分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
4、编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
5、稳健性
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
6、安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。
7、可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。
Java环境本身对新的硬件平台和 *** 作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
8、高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
9、多线程
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:
1)、使用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,
2)、从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
10、动态性
Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
11、平台独立性
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
//创建圆的类
public class round {
protected double radius;
protected double area;
public void setRadius(double radius) { //设置圆的半径
thisradius = radius;
}
public double getArea() { //求圆的面积
return 314radiusradius;
}
}
//创建继承自圆的圆柱体类
public class cylindrical extends round{
private double height;
private double voluem;
public void setHeight(double height){ //设置圆柱体的高
thisheight = height;
}
public double getVoluem() { //求圆柱体的体积,半径继承自圆的类,不用重复定义
return 314radiusradiusheight;
}
}
//主函数类(测试类):
public class testMain {
public static void main(String[] args){
round round1 = new round();
cylindrical cylindrical1 = new cylindrical();
int n1;//定义一个整型数n1
BufferedReader distream = new BufferedReader(new InputStreamReader(Systemin));
Systemoutprintln( "请输入圆的半径:");
n1=IntegerparseInt(distreamreadLine());//进行输入,并把输入的数存入n1中
round1setRadius(n1); //假定输入为20
Systemoutprintln("半径为"+n1+"时,圆的面积为:"+round1getArea());
round1setRadius(10);//注意,此时用到的对象是圆的对象,非圆柱体对
//象,所以圆柱体半径为零,下面输出结果也为0
cylindrical1setHeight(10);
Systemoutprintln("高为1,半径为1的圆柱体的体积为:"+cylindrical1getVoluem());
cylindrical1setRadius(10);
Systemoutprintln("半径为1时圆的面积为:"+round1getArea());
Systemoutprintln("此时的圆柱体体积为:"+cylindrical1getVoluem());
}
}
输出结果:
请输入圆的半径:20
半径为2时,圆的面积为:1256
高为1,半径为1的圆柱体的体积为:00
半径为1时圆的面积为:314
此时的圆柱体体积为:314
以上就是关于JAVA编写程序全部的内容,包括:JAVA编写程序、JAVA语言介绍是什么、要编写Java应用程序,该程序包含两个类,一个圆形类、一个圆柱体类。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)