Java语言程序设计(第二版)(郑莉)-学习笔记-第一天

package chapter_1;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午2:15:43
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 9页-例1-1
* @Demand 需求
* @ClassName MyClass
* @Description Application举例
*/
public class MyClass {
	private int val1,val2;
	public void myFun(int x,int y) {
		val1=x;
		val2=y;
		System.out.println("The sum is:"+(val1+val2));
	}
	public static void main(String arg[]) {
		MyClass MyObj = new MyClass();
		MyObj.myFun(1,2);
	}
}

/**
* jdk1.8 Eclipse运行结果
* The sum is:3
*
*/
package chapter_1;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午2:37:05
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 25页-例1-7
* @ClassName MyArray
* @Description 数据举例
*/
public class MyArray {
	public static void main(String args[]) {
		int myArray[];
		myArray = new int[10];
		myArray[0] = 0;
		myArray[1] = 1;
		myArray[2] = 2;
		myArray[9] = 9;
		System.out.println("Index\t\tValue");
		for(int i=0;i<myArray.length;i++)
			System.out.println(i+"\t\t"+myArray[i]);
		System.out.print("Values:");
		for(int i:myArray)
			System.out.print(i+" ");
		
	}
}

/**
* jdk1.8 Eclipse运行结果
*Index		Value
0		0
1		1
2		2
3		0
4		0
5		0
6		0
7		0
8		0
9		9
Values:0 1 2 0 0 0 0 0 0 9 
*
*/
package chapter_1;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午2:20:13
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 10页-例1-2
* @ClassName MyApplet
* @Description Applet举例
*/
import java.awt.Graphics;
import javax.swing.JApplet;
public class MyApplet extends JApplet{
	public void paint(Graphics g) {
		super.paint(g);
		g.drawString("This is a Java Applet!",50,50);
	}
}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_1;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午2:48:31
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 27页-例1-8
* @ClassName MyDoublueArray
* @Description 二维数据举例
*/
public class MyDoublueArray {
	public static void main(String args[]) {
		int myArray[][];
		myArray = new int[5][10];
		int total = 0;
		for(int i =0;i<myArray.length;i++)
			for(int j=0;j<myArray[i].length;j++)
				myArray[i][j] = i*10+j;
		for(int i=0;i<myArray.length;i++)
			for(int j=0;j<myArray[i].length;j++)
				total+=myArray[i][j];
		System.out.println("The sum is:"+total);
		total = 0;
		for(int [] a:myArray) {
			for(int i:a) {
				total+=i;
			}
				
		}
		System.out.println("The sum is:"+total);
	}
}

/**
* jdk1.8 Eclipse运行结果
* The sum is:1225
* The sum is:1225
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午4:36:41
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 54页-例2-14,例2-15,例2-16
* @ClassName BankTester,BankAccount
* @Description 使用默认的构造方法举例
*/
class BankAccount{
	String ownerName;
	int accountNumber;
	float balance;
	public BankAccount() {
//		ownerName = "";
//		accountNumber = 999999;
//		balance = 0.0f;
		this("",999999,0.0f);
	}
	public BankAccount(String initName,int initAccountNumber,float initBalance) {
		ownerName = initName;
		accountNumber = initAccountNumber;
		balance = initBalance;
	}
	public BankAccount(String initName,int initAccountNumber) {
		this(initName,initAccountNumber,0.0f);
	}
}
public class BankTester {
	public static void main(String atgs[]) {
		BankAccount myAccount = new BankAccount("fangwej",22,500);
		System.out.println("ownerName="+myAccount.ownerName);
		System.out.println("accountNumber="+myAccount.accountNumber);
		System.out.println("balance="+myAccount.balance);
	}
}

/**
* jdk1.8 Eclipse运行结果
*
	ownerName=null
	accountNumber=0
	balance=0.0
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午3:36:58
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 36页-例2-2
* @ClassName Circle
* @Description 声明一个表示圆的类
*/
public class Circle {
	private int radius;
	static double PI = 3.14159265;//静态变量
	public double area() {
		return PI*radius*radius;
	}
	public void setRadius(int radius){
		this.radius = radius;
	}
	public int getRadius() {
		return radius;
	}
}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午3:51:27
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 40页-例2-5
* @ClassName ClassVariableTester
* @Description 类变量举例
*/
public class ClassVariableTester {

	public static void main(String[] args) {
		Circle x =new Circle();
		System.out.println(x.PI);
		System.out.println(Circle.PI);
		x.PI = 3.14;
		System.out.println(x.PI);
		System.out.println(Circle.PI);

	}

}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午3:17:21
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 34页-例2-1
* @ClassName Clock
* @Description 钟表类举例
*/
public class Clock {
	int hour;
	int minute;
	int second;
	public void setTime(int newH,int newM,int newS) {
		hour = newH;
		minute = newM;
		second = newS;
	}
	public void showTime() {
		System.out.println(hour+":"+minute+":"+second);
	}
	
}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午3:39:47
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 37页-例2-3
* @ClassName Rectangle
* @Description 矩形类
*/
public class Rectangle {
	double width;
	double height;
	public double area() {
		return width*height;
	}
}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午4:54:02
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 58页-例2-17,例2-18,例2-19
* @ClassName ScoreTester
* @Description 枚举类型简单举例
*/
enum Score{
	EXCELLENT(90.0f),//调用Score(float p)构造方法进行构造
	QUALIFIED(70.0f),//调用Score(float p)构造方法进行构造
	FAILED;//使用无参构造方法构造
	private float point;
	Score(){
		point = 0.0f;
	}
	private Score(float p) {
		this.point = p;
	}
	//定义枚举类型的方法
	float getPoint() {
		return point;
	}
	void setPoint(float point) {
		this.point = point;
	}
};
public class ScoreTester {

	public static void main(String[] args) {
//		giveScore(Score.EXCELLENT);
//		for(Score s:Score.values())//values()获得枚举值数据
//			System.out.println(s);
//		Score s=Score.valueOf("QUALIFIED");//从字符串得到枚举类型对象
//		System.out.println(s.toString());//输出s的字符串描述
//		System.out.println("ordinal of EXCELLENT IS "+s.ordinal());//输出位置索引值
		for(Score s:Score.values())//循环输出枚举值
			System.out.println(s.getPoint());
		Score s = Score.EXCELLENT;//默认枚举值
		System.out.println("Before setPoint,s.point="+s.getPoint());
		s.setPoint(92.0f);//修改枚举值
		System.out.println("After setPoint,s.point="+s.getPoint());
	}
	public static void giveScore(Score s) {
		switch(s) {
			case EXCELLENT:
				System.out.println("EXCELLENT");
				break;
			case QUALIFIED:
				System.out.println("QUALIFIED");
				break;
			case FAILED:
				System.out.println("Failed");
				break;
		}
	}

}

/**
* jdk1.8 Eclipse运行结果
*
	EXCELLENT
	EXCELLENT
	QUALIFIED
	FAILED
	QUALIFIED
	ordinal of EXCELLENT IS 1
*/
/**
* jdk1.8 Eclipse运行结果
*
	90.0
	70.0
	0.0
	Before setPoint,s.point=90.0
	After setPoint,s.point=92.0
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午3:34:16
* @Book Java语言程序设计(第二版)2011年6月第2版
* @ClassName test
* @Description 测试类
*/
public class test {
	public static void main(String[] args) {
		//Clock类测试
		Clock c = new Clock();
		c.setTime(5, 5, 5);
		c.showTime();
		//Circle类测试
		Circle o;
		o = new Circle();
		o.setRadius(5);
		System.out.println(o);
		System.out.println("radius="+o.getRadius());
		//Rectangle类测试
		Rectangle r,r2;
		r = new Rectangle();
		r2 = new Rectangle();
		System.out.println(o+" "+r+" "+r2);//输出地址
	}

}

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午4:11:14
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 47页-例2-11
* @ClassName VarArgTester
* @Description 可变长参数举例
*/
public class VarArgTester {

	public static void main(String[] args) {
		Circle c = new Circle();
		c.setRadius(10);
		Rectangle r1 = new Rectangle();
		r1.width = 20;
		r1.height = 30;
		Rectangle r2 = new Rectangle();
		r2.width = 10;
		r2.height = 40;
		System.out.println("max area of c,r1 and r2 is "+maxArea(c,r1,r2));
		System.out.println("max area of c,r1 and r2 is "+maxArea(c,r1));
		System.out.println("max area of c,r1 and r2 is "+maxArea(c,r2));
		System.out.println("max area of c,r1 and r2 is "+maxArea(c));
	}
	static double maxArea(Circle c,Rectangle...varRec) {
		double max = 0.0;
		max=c.area();
		Rectangle[] rec = varRec;
		for(Rectangle r:rec) {
			if(r.area() > max)
				max = r.area();
		}
		return max;
	}

}

/**
* jdk1.8 Eclipse运行结果
	max area of c,r1 and r2 is 600.0
	max area of c,r1 and r2 is 600.0
	max area of c,r1 and r2 is 400.0
	max area of c,r1 and r2 is 314.159265
*
*/
package chapter_2_2_20;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午5:21:56
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 60页-例2-20,例2-21,例2-22,例2-23,例2-24
* @ClassName BankAccount
* @Description 下面给出银行账号类的完整程序来说明类与对象的应用
*/
enum Grade{
	VIP,
	General;
}
public class BankAccount {
	private static int LAST_ACCOUNT_NUMBER=0;
	private String ownerName;
	private int accountNumber;
	private float balance;
	Grade grade;
	public BankAccount() {
		this("",0,0,Grade.General);
	}
	public BankAccount(String initName,int initAccNum,float initBal,Grade g) {
		ownerName = initName;
		//accountNumber = initAccNum;
		accountNumber = ++LAST_ACCOUNT_NUMBER;
		balance = initBal;
		grade = g;
	}
	public String getOwnerName() {
		return ownerName;
	}
	public int getAccountNumber() {
		return accountNumber;
	}
	public float getBalance() {
		return balance;
	}
	public Grade getGrade() {
		return grade;
	}
	public void setOwnerName(String newName) {
		ownerName = newName;
	}
	public void setAccountNumber(int newNum) {
		accountNumber = newNum;
	}
	public void setBalance(float newBalance) {
		balance = newBalance;
	}
	public void setGrade(Grade g) {
		grade = g;
	}
	//原来toString()的功能:getClass().getName()+'@'+Integer.toHexString(hashCode());
	//声明public
	//返回类型String
	//方法名toString,无参数
	//不要使用输出方法System.out.println();
	public String toString() {
		return (grade+" account #"+new java.text.DecimalFormat("000000").format(accountNumber)+" width balance "+new java.text.DecimalFormat("$0.00").format(balance));
	}
	public float deposit(float anAmount) {
		balance+=anAmount;
		return(balance);
	}
	public float withdraw(float anAmount) {
		balance-=anAmount;
		return anAmount;
	}
	public static BankAccount example1() {
		BankAccount ba = new BankAccount();
		ba.setOwnerName("Lihong");
		ba.deposit(1000);
		return ba;
	}
	public static BankAccount example2() {
		BankAccount ba = new BankAccount();
		ba.setOwnerName("zzz");
		ba.deposit(1000);
		ba.deposit(2000);
		return ba;
	}
	public static BankAccount emptyAccountExample() {
		BankAccount ba = new BankAccount();
		ba.setOwnerName("ddd");
		ba.setAccountNumber(552255);
		return ba;
	}
}	

/**
* jdk1.8 Eclipse运行结果
*
*
*/
package chapter_2_2_20;
/**
* @author 小白
* @version 创建时间:2018年12月2日 下午5:31:16
* @Book Java语言程序设计(第二版)2011年6月第2版
* @BookPages 60页-例2-20,例2-21,例2-22,例2-23,例2-24
* @ClassName AccountTester
* @Description Account测试类
*/
public class AccountTester {

	public static void main(String[] args) {
		BankAccount anAccount,anAccount2,anAccount3,anAccount4,anAccount5;
//		anAccount = new BankAccount("fang",100023,0,Grade.General);
//		anAccount.setBalance(anAccount.getBalance()+100);
//		System.out.println(anAccount);//getClass().getName()+'@'+Integer.toHexString(hashCode());
//		System.out.println("Account name:"+anAccount.getOwnerName());
//		System.out.println("Account number:"+anAccount.getAccountNumber());
//		System.out.println("Balance:$"+anAccount.getBalance());
//		System.out.println("Grade:"+anAccount.getGrade());
//		anAccount2 = new BankAccount("fangweijun",100024,0,Grade.VIP);
//		System.out.println(anAccount);
//		anAccount.deposit(225.67f);
//		anAccount.deposit(300.00f);
//		System.out.println(anAccount);
//		anAccount.withdraw(400.00f);
//		System.out.println(anAccount);
		anAccount3 = BankAccount.example1();
		anAccount4 = BankAccount.example1();
		anAccount5 = BankAccount.example2();
		anAccount4.setOwnerName("Mary");
		anAccount4.deposit(250);
		System.out.println(anAccount3);
		System.out.println(anAccount4);
		System.out.println(anAccount5);
	}

}

/**
* jdk1.8 Eclipse运行结果
	Here is the account:chapter_2_2_20.BankAccount@15db9742
	Account name:fang
	Account number:100023
	Balance:$100.0
	Grade:General
*/
/**
* jdk1.8 Eclipse运行结果
	General account #100023 width balance $100.00
	Account name:fang
	Account number:100023
	Balance:$100.0
	Grade:General
	General account #100023 width balance $100.00
	General account #100023 width balance $625.67
	General account #100023 width balance $225.67
*/

你可能感兴趣的:(Java语言程序设计)