java程序实例
① 用java编写一个简单例子,题目如下
package test;
public class Student {
private String name;
private String id;
private String clazz;
private int age;
private String address;
/**
* sayHello方法
*/
public void sayHello() {
System.out.println("学号为" + this.id + "的同学的具体信息如下:");
System.out.println("姓名:" + this.name);
System.out.println("班级:" + this.clazz);
System.out.println("年龄:" + this.age);
System.out.println("家庭住址:" + this.address);
}
/**
* 测试方法
*
* @param args
*/
public static void main(String[] args) {
// 第一问
Student student = new Student();
student.setAddress("网络知道");
student.setAge(1);
student.setClazz("一班");
student.setId("071251000");
student.setName("lsy605604013");
student.sayHello();
// 第二问
Student studentNew = new Student();
studentNew.setAddress("搜搜知道");
studentNew.setAge(2);
studentNew.setClazz("二班");
studentNew.setId("071251001");
studentNew.setName("lady");
if (student.getAge() < studentNew.getAge())
studentNew.sayHello();
else if (student.getAge() > studentNew.getAge())
student.sayHello();
else
System.out.println("两人一样大");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
② 一个简单的Java程序代码
public double GetCost(int minutes)
{
//整数时间所花的费用
int aa = minutes / 60; //未满1小时处理
if (minutes < 60)
return 2;
//超出小时部分
int bb = minutes % 60; //其实你还有必要做一些其他处理。比如说超过30分钟了该怎么样算等等...... return aa * 2 + bb * 0.01d;
}
③ JAVA继承实例
继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类。运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西。在Java 术语学中,被继承的类叫超类(superclass ),继承超类的类叫子类(subclass )。因此,子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素。
继承一个类,只要用extends 关键字把一个类的定义合并到另一个中就可以了。为了理解怎样继承,让我们从简短的程序开始。下面的例子创建了一个超类A和一个名为B的子类。注意怎样用关键字extends 来创建A的一个子类。
// A simple example of inheritance.
// Create a superclass.
class A {
int i, j;
void showij() {
System.out.println("i and j: " + i + " " + j);
}
}
class B extends A {
int k;
void showk() {
System.out.println("k: " + k);
}
void sum() {
System.out.println("i+j+k: " + (i+j+k));
}
}
class SimpleInheritance {
public static void main(String args[]) {
A superOb = new A();
B subOb = new B();
System.out.println("Contents of superOb: ");
superOb.showij();
System.out.println();
subOb.i = 7;
subOb.j = 8;
subOb.k = 9;
System.out.println("Contents of subOb: ");
subOb.showij();
subOb.showk();
System.out.println();
System.out.println("Sum of i, j and k in subOb:");
subOb.sum();
}
}
该程序的输出如下:
Contents of superOb:
i and j: 10 20
Contents of subOb:
i and j: 7 8
k: 9
Sum of i, j and k in subOb:
i+j+k: 24
像你所看到的,子类B包括它的超类A中的所有成员。这是为什么subOb 可以获取i和j 以及调用showij( ) 方法的原因。同样,sum( ) 内部,i和j可以被直接引用,就像它们是B的一部分。
尽管A是B的超类,它也是一个完全独立的类。作为一个子类的超类并不意味着超类不能被自己使用。而且,一个子类可以是另一个类的超类。声明一个继承超类的类的通常形式如下:
class subclass-name extends superclass-name {
// body of class
}
你只能给你所创建的每个子类定义一个超类。Java 不支持多超类的继承(这与C++ 不同,在C++中,你可以继承多个基础类)。你可以按照规定创建一个继承的层次。该层次中,一个子类成为另一个子类的超类。然而,没有类可以成为它自己的超类。
成员的访问和继承
尽管子类包括超类的所有成员,它不能访问超类中被声明成private 的成员。例如,考虑下面简单的类层次结构:
/* In a class hierarchy, private members remain private to their class.
This program contains an error and will not compile.
*/
// Create a superclass.
class A {
int i;
private int j; // private to A
void setij(int x, int y) {
i = x; j = y;
}
}
// A"s j is not accessible here.
class B extends A {
int total; void sum() {
total = i + j; // ERROR, j is not accessible here
}
}
class Access {
public static void main(String args[]) {
B subOb = new B();
subOb.setij(10, 12);
subOb.sum();
System.out.println("Total is " + subOb.total);
}
}
该程序不会编译,因为B中sum( ) 方法内部对j的引用是不合法的。既然j被声明成private,它只能被它自己类中的其他成员访问。子类没权访问它。
注意:一个被定义成private 的类成员为此类私有,它不能被该类外的所有代码访问,包括子类。
更实际的例子
让我们看一个更实际的例子,该例子有助于阐述继承的作用。新的类将包含一个盒子的宽度、高度、深度。
// This program uses inheritance to extend Box.
class Box {
double width; double height; double depth;
// construct clone of an object
Box(Box ob) { // pass object to constructor
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// constructor used when all dimensions specified
Box(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
// constructor used when no dimensions specified
Box() {
width = -1; // use -1 to indicate
height = -1; // an uninitialized
depth = -1; // box
}
// constructor used when cube is created
Box(double len) {
width = height = depth = len;
}
// compute and return volume double
volume() {
return width * height * depth;
}
}
BoxWeight extends Box {
double weight; // weight of box
// constructor for BoxWeight
BoxWeight(double w, double h, double d, double m) {
width = w;
height = h;
depth = d;
weight = m;
}
}
class DemoBoxWeight {
public static void main(String args[]) {
BoxWeight mybox1 = new BoxWeight(10, 20, 15, 34.3);
BoxWeight mybox2 = new BoxWeight(2, 3, 4, 0.076);
double vol;
vol = mybox1.volume();
System.out.println("Volume of mybox1 is " + vol);
System.out.println("Weight of mybox1 is " + mybox1.weight);
System.out.println();
vol = mybox2.volume();
System.out.println("Volume of mybox2 is " + vol);
System.out.println("Weight of mybox2 is " + mybox2.weight);
}
}
该程序的输出显示如下:
Volume of mybox1 is 3000.0
Weight of mybox1 is 34.3
Volume of mybox2 is 24.0
Weight of mybox2 is 0.076
BoxWeight 继承了Box 的所有特征并为自己增添了一个weight 成员。没有必要让BoxWeight 重新创建Box 中的所有特征。为满足需要我们只要扩展Box就可以了。
继承的一个主要优势在于一旦你已经创建了一个超类,而该超类定义了适用于一组对象的属性,它可用来创建任何数量的说明更多细节的子类。每一个子类能够正好制作它自己的分类。例如,下面的类继承了Box并增加了一个颜色属性:
// Here, Box is extended to include color.
class ColorBox extends Box {
int color; // color of box
ColorBox(double w, double h, double d, int c) {
width = w;
height = h;
depth = d;
color = c;
}
}
记住,一旦你已经创建了一个定义了对象一般属性的超类,该超类可以被继承以生成特殊用途的类。每一个子类只增添它自己独特的属性。这是继承的本质。
超类变量可以引用子类对象
超类的一个引用变量可以被任何从该超类派生的子类的引用赋值。你将发现继承的这个方面在很多条件下是很有用的。例如,考虑下面的程序:
class RefDemo {
public static void main(String args[]) {
BoxWeight weightbox = new BoxWeight(3, 5, 7, 8.37);
Box plainbox = new Box(); double vol;
vol = weightbox.volume();
System.out.println("Volume of weightbox is " + vol);
System.out.println("Weight of weightbox is " + weightbox.weight);
System.out.println();
// assign BoxWeight reference to Box reference
plainbox = weightbox;
vol = plainbox.volume(); // OK, volume() defined in Box
System.out.println("Volume of plainbox is " + vol);
/* The following statement is invalid because plainbox does not define a weight member. */
// System.out.println("Weight of plainbox is " + plainbox.weight);
}
}
这里,weightbox 是BoxWeight 对象的一个引用,plainbox 是Box对象的一个引用。既然BoxWeight 是Box的一个子类,允许用一个weightbox 对象的引用给plainbox 赋值。
当一个子类对象的引用被赋给一个超类引用变量时,你只能访问超类定义的对象的那一部分。这是为什么plainbox 不能访问weight 的原因,甚至是它引用了一个BoxWeight 对象也不行。仔细想一想,这是有道理的,因为超类不知道子类增加的属性。这就是本程序中的最后一行被注释掉的原因。Box的引用访问weight 域是不可能的,因为它没有定义。
④ 用java编写一个统计投票结果程序
先定义一个学生的对象,里面有名字,和票数两个属性,再定义一个排序函数,返回值为数组,就是取得三个数的数组,打印输出,或者可以自己想一个更加面向对象的结构实现,在简单问题上多用面向对象去思考问题 。
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int cj, yxsum = 0, tgsum = 0, bjgsum = 0;
while ((cj = in.nextInt()) != 0) {
if (cj >= 85) {
yxsum++;
} else if (cj >= 60) {
tgsum++;
} else {
bjgsum++;
System.out.println(yxsum);
System.out.println(tgsum);
System.out.println(bjgsum);
}
(4)java程序实例扩展阅读:
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类;
通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。
⑤ 用JAVA的do-while语句编写程序例子
public class SimpleDoWhile {
public static void main(String[] args) {
int index = 1;
do {
System.out.println(index);
index = index + 1;
} while(index <= 10);
System.out.println("DONE.");
}
}
输出结果为:
(5)java程序实例扩展阅读:
do...while 和while循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。
和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为FALSE则整个循环立即终止)。
总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。
⑥ 求助一个JAVA程序实例,“编制程序,打印出100—10000中所有的”水仙花数“”
public class shui {
/**
* @param args
*/
public static void main(String[] args) {
int b,s,g;
System.out.println("开始输出");
for(int i=100;i<1000;i++){
b=i/100;
s=i%100/10;
g=i%10;
if(b*b*b+s*s*s+g*g*g==i)
System.out.println(b+"
"+s+" "+g+" "+i);
}
}
}
⑦ 一次,如何允许只运行一个Java程序实例
把自己编写的java程序变成jar可执行文件的步骤如下: 1.最简单直接的方法,选择想打包的程序,右键export... 2.选择Runnable Jar file。(即可执行的Jar包) 3.选择程序的主类,就是还有Main函数的类。点Finish即可。
⑧ java编程实例
我是Java初学者,我看了你的问题后想了很久终于把它做出来了,你看看吧,方法不是很好,但能满足你的要求:
import java.util.Scanner;
public class Check2{
int t;
char[] chs = new char[500]; //输入的句子不能超过500个字符
Check2() {
String str;
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串(输入的字符串不能超过500个字符):");
str = sc.nextLine();
t=str.length();
for (int i = 0; i < t; i ++) {
chs[i] = str.charAt(i); //将输入的字符串装入数组
}
}
}
class FuZhi{
char[] letter=new char[52]; //将52个字母(含大小写)装入数组
FuZhi(){
char p;
int i=0,j=26;
for(p='A';p<='Z';p++){
letter[i]=p; //这句刚才写掉了,加上去后程序就完整了
i++; //将A-Z装入数组
}
for(p='a';p<='z';p++){
letter[j]=p; //将a-z装入数组,并且从数组的第26个开始装入(letter[0]-letter[25]已被装入了字母)
j++;
}
}
}
class display{
public static void main(String[] args){
char temp;
int t;
int[] n= new int [52]; //用于统计每个字符出现的次数
Check2 k =new Check2();
FuZhi m=new FuZhi();
for(int j=0;j<52;j++){
t=0; //令t为0,,并且使上一个字母统计完成后
//将其再次初始化(如A统计完成后,当程序统计B出现的次数时,使B的初始次数为0)
for(int i=0;i<k.t;i++){
if(m.letter[j]==k.chs[i]){ //比较字符是否相同,如相同,使t自加一
t++;
n[j]=t; //数组n来统计每个字母出现的次数,即其中的每一个元素代表一个字母在程序中出现的次数
}
}
}
System.out.println("总共输入了"+k.t+"个字符:\n"+"其中");
for(int i=0;i<52;i++){
System.out.println("字母"+m.letter[i]+"出现的次数为:"+n[i]+"次");
}
}
}
写掉了一句“letter[i]=p;”,现在已经补上了,程序可以运行了,你试一下吧!!!
⑨ 编写一个java程序,读取系统时间,然后将时间用中文输出
java程序读取系统时间,可以使用Date时间类,使用格式化类simpleDateFormat类,实例如下:
packagecom.qiu.lin.he;
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassCeShi{
publicstaticvoidmain(String[]args){
Datedate=newDate();//获取此时的系统时间
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日HH点mm分ss秒");
System.out.println("中文现实的时间是"+sdf.format(date));
}
}
运行结果如下:
⑩ Java中实例是什么意思
new 一个对象是实例吗?
对,是实例,你说的没错。可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。
这样:
Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类,
public class Cat {
public Cat() {
System.out.println("这是构造方法");
}
}
使用new + 构造方法 来创建一个对象,那么也就是
Cat c = new Cat();
前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c,这个变量是Cat类型的,它的值是什么?
一会儿在说;
后半部分,new Cat(); 这就是new关键字和构造方法来创建一个对象,Cat()是构造方法的名字没错吧?想造出一个对象来,就这么写,语法规定的,没有为什么;
new Cat(); 说明 new这个Cat类的一个对象,程序运行的时候,会调用构造方法Cat(),等这个构造方法执行完了,这个Cat类型的对象也就造出来了,真正的出现在内存当中了;
使用new关键字造出来的对象,被分配在内存的堆区(heap),而且等这个对象真正出来之后,还会做一件重要的事情:
我们这个对象是被分配在内存中的,那么内存地方大了,这个对象在哪里呢?怎么找到它呢?new关键字创建出一个对象之后,会把这个对象在内存中的地址返回,通过这个地址就可以找到这个对象,那么我们上面的写法,
Cat c = new Cat();
意思就是说,把这个对象在内存中的地址 赋值 给变量c,这就是Java中引用概念,c就叫做引用,或者叫引用变量,或者直接叫变量,没问题,都是它;
c的值就是一个内存地址,或者叫引用地址,通过这个地址,就可以准确的找到我们刚才创建出来的对象,以后我们要使用这个对象做一些事情,调用此对象的方法什么的,都用过这个引用,ok?
----
注意,我再说一遍,好多人都搞不清楚,这个c到底是对象还是引用,好多人说c就是Cat类的一个实例,这是非常错误的,c就是引用,不是对象!我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例