📄 e.txt
字号:
//-------------------例题1 封装----------------
public class test1{
public static void main(String[] args) {
BadElevator e1 = new BadElevator();
e1.doorOpen=true;
e1.doorOpen=false;
e1.floor--; // 到地下室了
e1.floor++;
e1.floor=7; // 没有7层
e1.doorOpen=true; // 门开,住户上下电梯。
e1.doorOpen=false;
e1.floor=1; // 到第一层
e1.doorOpen=true; // 门开,住户上下电梯。
e1.floor++; // 门还没关,电梯就开了。
e1.doorOpen=false ;
e1.floor-- ;
e1.floor-- ;
}
}
public class BadElevator{
public boolean doorOpen=false;
public int floor = 1;
public final int TOP_FLOOR=5;
public final int BOTTOM_FLOOR=1;
}
public class test2 {
public static void main(String args[]) {
Elevator e2 = new Elevator();
e2.openDoor();
e2.closeDoor();
e2.goDown();
e2.goUp();
e2.goUp();
e2.openDoor();
e2.closeDoor();
e2.goDown();
e2.openDoor();
e2.goDown();
e2.closeDoor();
e2.goDown();
e2.goDown();
int curFloor = e2.getFloor();
if (curFloor!=5 && !e2.isOpen()) e2.setFloor(5);
e2.openDoor();
e2.closeDoor();
e2.setFloor(10);
System.out.println("------------end of test------------------ ");
}
}
public class Elevator
{
private boolean doorOpen=false;
private int floor =1 ;
private int weight = 0 ;
final int CAPACITY=1000 ;
final int TOP_FLOOR=5 ;
final int BOTTOM_FLOOR=1 ;
public void openDoor() {
doorOpen=true ;
}
public void closeDoor() {
checkWeightSensors(); //test weight
if (weight<=CAPACITY)
doorOpen=false ;
else
for(int counter=0;counter<10;counter++)
System.out.print((char) 7) ;
}
private void checkWeightSensors() {
weight=(int) (Math.random()*1500) ;
System.out.println("the weight is " + weight);
}
public void goUp() {
if(!doorOpen) {
if(floor<TOP_FLOOR) {
floor++ ;
System.out.println(floor) ;
}
else
System.out.println("already on top floor");
}
else
System.out.println("door still open!");
}
public void goDown() {
if(!doorOpen) {
if(floor>BOTTOM_FLOOR) {
floor-- ;
System.out.println(floor) ;
}
else
System.out.println("already on bottom floor");
}
else
System.out.println("door still open!");
}
public void setFloor(int goal) {
if(goal>=BOTTOM_FLOOR && goal <=TOP_FLOOR) {
while(floor!=goal)
if(floor<goal) goUp() ;
else goDown();
System.out.println("current floor is :" + floor);
}
}
public int getFloor() {
return floor ;
}
public boolean isOpen() {
return doorOpen ;
}
}
//----------------------例题2-方法的参数传递--------------
public class PassTest {
float m_float ;
void change1(int pi) {
pi = 100;
}
void change2(String ps) {
System.out.println(ps);
ps=new String("Right") ;
System.out.println(ps);
}
void change3(PassTest po ) {
po.m_float=100.0F ;
}
public static void main(String[] args) {
PassTest pt = new PassTest() ;
int i = 22 ;
pt.change1( i ) ;
System.out.println("i value is " + i);
String s = new String( "Hello" ) ;
pt.change2( s ) ;
System.out.println("s value is " + s);
pt.m_float = 22.0F ;
pt.change3( pt ) ;
System.out.println("Current pt.m_float is " + pt.m_float);
} // main()
} // class
//----------------例题3 数组 --------------------
public class a {
public static void main(String[] args) {
int[] aaa ={23,14,35,2,71,55,82,41,11,6};
Ary ay1 = new Ary(aaa);
ay1.print();
ay1.order();
ay1.print();
for(int m=0;m<aaa.length;m++)
System.out.print("---" + aaa[m]);
System.out.println();
Ary ay2 = new Ary(ay1.subAry(2,6));
ay2.print();
}
}
class Ary {
int[] m_ary ;
Ary(int[] p){
m_ary = p ;
}
void print(){
for (int i=0;i<m_ary.length;i++) System.out.print(m_ary[i] + " ");
System.out.println();
}
void order(){
int j,temp;
boolean exchange=true;
j = m_ary.length-2;
while(j>=0 && exchange){
exchange=false;
for(int i=0;i<=j;i++)
if(m_ary[i]>m_ary[i+1]) {
exchange=true;
temp = m_ary[i] ;
m_ary[i] = m_ary[i+1] ;
m_ary[i+1] = temp;
}
j = j-1 ;
}
}
int[] subAry(int a1,int a2){
int[] sa ;
if(a1>=0 && a1<a2 && a2<m_ary.length){
sa = new int[a2-a1+1];
for(int i=0,j=a1;j<=a2; i++,j++) sa[i] = m_ary[j] ;
return sa ;
}
else {
System.out.println("error index");
return new int[1];
}
}
}
//------------例题4----方法的重载-----------------
public class test {
public static void main(String[] args){
Ov.m1(5);
Ov o = new Ov();
o.m1(3);
o.m1(3.14F);
o.m1(3.14);
o.m1(3,3.14F);
o.m1(3.14F,3);
short j=128;
o.m1(j);
}
}
class Ov{
void m1(int i){
System.out.println("----m1(int)----");
}
int m1(int i){
return i ;
}
void m1(float f){
System.out.println("----m1(float)----");
}
void m1(double d){
System.out.println("----m1(double)----");
}
void m1(int i, float f){
System.out.println("----m1(int , float)----");
}
void m1(float f,int i){
System.out.println("----m1(float , int)----");
}
static void m1(float f,int i){
System.out.println("----static m1(int)----");
}
}
//------------例题5------测试构造函数的继承问题-----
public class test {
public static void main(String args[]){
a a1 = new a();
System.out.println(a1.x);
a a2 = new a(5);
System.out.println(a2.x);
sa sa1 = new sa() ;
System.out.println(sa1.x);
sb sb1 = new sb() ;
System.out.println(sb1.x);
sb sb2 = new sb(5);
System.out.println(sb2.x);
sb sb3 = new sb(5,100);
System.out.println(sb3.x);
ssb ssb1 = new ssb();
System.out.println(ssb1.x);
}
}
class a {
int x=1 ;
a(){
x=10;
}
a(int p1){ //p1=5
x=x+p1;
}
}
class sa extends a {
}
class sb extends a {
sb() {
x=x+3;
}
sb(int p1) { //p1=5
x=x+p1;
}
sb(int p1,int p2){ //p1=5,p2=100
super(p1);
x=x+p2;
}
}
class ssb extends sb {
ssb() {
x=x+6 ;
}
}
//结果 10 6 10 13 15 106 19
--------------------例题6 testOverride-----------
public class phone
{
public static void main(String args[])
{
D200_Card my200 = new D200_Card(12345678,1234,50.0,"200");
if(my200.performDial(12345678,1234))
System.out.println("拨打电话后剩余金额为:"+my200.getBalance());
if(my200.performDial())
System.out.println("拨打电话后剩余金额为:"+my200.getBalance());
}
}
abstract class PhoneCard
{
double balance;
abstract boolean performDial();
double getBalance()
{
return balance;
}
}
abstract class Number_PhoneCard extends PhoneCard
{
long cardNumber;
int password;
String connectNumber;
boolean connected;
final boolean performConnection(long cn,int pw)
{
if(cn == cardNumber && pw == password)
{
connected = true;
return true;
}
else
return false;
}
}
final class D200_Card extends Number_PhoneCard
{
final double additoryFee=0.1;
D200_Card(long cn,int pw,double b,String c)
{
cardNumber = cn;
password = pw;
balance = b;
connectNumber = c;
}
boolean performDial()
{
if(!connected)
return false;
if( balance > (0.5 + additoryFee ))
{
balance -= (0.5 + additoryFee);
return true;
}
else
return false;
}
boolean performDial(long cn,int pass)
{
if(performConnection(cn,pass))
return performDial();
else
return false;
}
double getBalance()
{
if(connected)
return balance;
else
return -1;
}
}
----------------例题11-a ---------------------
// -------方法覆盖---------
public class a {
public static void main(String[] args){
Employee emp = new Employee("赵兵",28,500.0F);
Manager mgr = new Manager("徐军",35,800.0F,200.0F);
Director dor = new Director("黄帅",45,1000.0F,500.0F,"2222","d01");
System.out.println(emp.getInfo());
System.out.println(mgr.getInfo());
System.out.println(dor.getInfo());
System.out.println();
}
}
class Employee {
String name ;
int age ;
float salary = 300 ;
Employee(String n,int a,float s){
name = n ;
if(a>=18 && a<=60) age = a ;
else {System.out.println("illegal age");
System.exit(1); }
salary = s;
}
Employee( String n , int a ) {
this(n ,a ,300 ) ;
}
void upSalary(float inc) {
salary = salary + inc ;
}
String getInfo() {
return "employee :" + name + "\t" + "salary: " + salary ;
}
}
class Manager extends Employee {
float allowance ;
Manager(String n,int a,float s , float aa){
super(n,a,s);
allowance = aa ;
}
void setAllowance(float a) {
allowance = a ;
}
String getInfo() {
return super.getInfo() + "\t" + "allowance :" + allowance ;
}
}
class Director extends Manager {
String telephone ;
String department ;
Director(String n,int a,float s,float aa,String tel,String dep){
super(n,a,s,aa);
telephone = tel ;
department = dep;
}
void setTel(String tel) {
telephone = tel ;
}
String getInfo() {
return name + " is the management of " + department ;
}
}
---------------例题11-b ---多态--------------
public class b {
public static void main(String[] args){
Employee e1 = new Employee("wang1",30,500);
Employee e2 = new Manager("wang2",40,800,200);
Employee e3 = new Director("wang3",50,1000,500,"3333","d02");
System.out.println(e2.name);
System.out.println(e2.allowance);
e2.upSalary(200.0F);
e2.setAllowance(500.0F) ;
e3.age = 55 ;
e3.Department = "d03";
e3.upSalary(500);
e3.setTel("8888");
System.out.println(e1.getInfo());
System.out.println(e2.getInfo());
System.out.println(e3.getInfo());
}
}
----------------例题11-c up cast -------------------
public class c {
public static void main(String[] args){
Director d = new Director("Jack",45,1000.0F,500.0F,"4444","d03");;
Manager m =d ; // Manager m = (Manager)d
m.setAllowance(500);
System.out.println(m.getInfo());
System.out.println();
m.setTel("2222"); //?
Employee e = d ; // Employee e = (Employee)d
e.upSalary(1000.0F) ;
System.out.println(e.getInfo());
}
}
-----------------例题11-d down cast--------------------
public class d {
public static void main(String[] args){
Employee e1 = new Employee("Tom",30,500);
Manager m1 = e1; //compiler error
Manager m2 = (Manager)e1; //runtime error
Employee e2 = new Director("Bob",50,1000,500,"5555","d04");
if (e2 instanceof Director) {
System.out.println( ((Director)e2).telephone);
Director d = (Director)e2 ;
d.setTel("9999");
d.department="d05";
System.out.println(d.getInfo());
}
}
}
//-----------11-e 参数多态 ----------------
class e {
public static void main(String[] s){
Manager m = new Manager(500);
System.out.println(Employee.findTax(m));
}
}
class Employee {
float salary;
static float findTax(Employee e){
return e.salary * 0.1F;
}
}
class Manager extends Employee{
float allowance ;
Manager(float sal){
salary = sal ;
}
void setAllowance(float a){
allowance = a ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -