姓名 | 陳敬勇 |
---|---|
班級 | 1752 |
學號 | 20175218 |
實驗序號 | 實驗三 |
實驗名稱 | 敏捷開發與XP實踐 |
實驗內容html
實驗要求java
public class CodeStandard { public static void main(String [] args){ StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); if(buffer.capacity()<20) buffer.append("1234567"); for(int i=0; i<buffer.length();i++) System.out.println(buffer.charAt(i)); } }
一、安裝 Alibaba Java Code Guidelines 插件git
二、規範代碼算法
public class CodeStandard { public static void main(String[] args) { StringBuffer buffer = new StringBuffer(); buffer.append('S'); buffer.append("tringBuffer"); System.out.println(buffer.charAt(1)); System.out.println(buffer.capacity()); System.out.println(buffer.indexOf("tring")); System.out.println("buffer = " + buffer.toString()); if (buffer.capacity() < 20) { buffer.append("1234567"); } for (int i = 0; i < buffer.length(); i++) { System.out.println(buffer.charAt(i)); } } }
三、格式化代碼安全
四、研究Code菜單網絡
提交搭檔項目git log的截圖,包含上面git commit的信息,並加上本身的學號水印信息。app
搭檔代碼以下框架
public class Complex { double RealPart=0; double ImagePart=0; public Complex(){} public Complex(double RealPart,double ImagePart){ this.RealPart=RealPart; this.ImagePart=ImagePart; } public double getRealPart(){ return RealPart; } public double getImagePart(){ return ImagePart; } public String toString(){ String s = ""; double r=RealPart; double i=ImagePart; if(r==0&&i==0){ s="0"; } else if(r==0&&i!=0){ s=i+"i"; } else if(r!=0&&i==0){ s=r+""; } else if(r!=0&&i<0){ s=r+""+i+"i"; } else { s=r+"+"+i+"i"; } return s; } public boolean equals(Object obj){ if(this==obj){ return true; } else return false; } public Complex ComplexAdd(Complex a){ return new Complex(RealPart+a.getRealPart(),ImagePart+a.getImagePart()); } public Complex ComplexSub(Complex a){ return new Complex(RealPart-a.getRealPart(),ImagePart-a.getImagePart()); } public Complex ComplexMulti(Complex a){ double r=RealPart*a.getRealPart()-ImagePart*a.getImagePart(); double i =ImagePart*a.getRealPart()+RealPart*a.getImagePart(); return new Complex(r,i); } public Complex ComplexDiv(Complex a){ double r=(RealPart * a.ImagePart + ImagePart * a.RealPart) / (a.ImagePart * a.ImagePart + a.RealPart * a.RealPart); double i=(ImagePart * a.ImagePart + RealPart * a.RealPart) / (a.RealPart * a.RealPart + a.RealPart * a.RealPart); return new Complex(r,i); } }
二、對搭檔的complex代碼進行測試編輯器
public class Complex { double RealPart=0; double ImagePart=0; public Complex(){} public Complex(double RealPart,double ImagePart){ this.RealPart=RealPart; this.ImagePart=ImagePart; } public double getRealPart(){ return RealPart; } public double getImagePart(){ return ImagePart; } public String toString(){ String s = ""; double r=RealPart; double i=ImagePart; if(r==0&&i==0){ s="0"; } else if(r==0&&i!=0){ s=i+"i"; } else if(r!=0&&i==0){ s=r+""; } else if(r!=0&&i<0){ s=r+""+i+"i"; } else { s=r+"+"+i+"i"; } return s; } public boolean equals(Object obj){ if(this==obj){ return true; } else return false; } public Complex ComplexAdd(Complex a){ return new Complex(RealPart+a.getRealPart(),ImagePart+a.getImagePart()); } public Complex ComplexSub(Complex a){ return new Complex(RealPart-a.getRealPart(),ImagePart-a.getImagePart()); } public Complex ComplexMulti(Complex a){ double r=RealPart*a.getRealPart()-ImagePart*a.getImagePart(); double i =ImagePart*a.getRealPart()+RealPart*a.getImagePart(); return new Complex(r,i); } public Complex ComplexDiv(Complex a){ double r=(RealPart * a.ImagePart + ImagePart * a.RealPart) / (a.ImagePart * a.ImagePart + a.RealPart * a.RealPart); double i=(ImagePart * a.ImagePart + RealPart * a.RealPart) / (a.RealPart * a.RealPart + a.RealPart * a.RealPart); return new Complex(r,i); } }
三、上傳代碼ide
完成重構內容的練習,下載搭檔的代碼,至少進行三項重構,提交重構後代碼的截圖,加上本身的學號水印。提交搭檔的碼雲項目連接。
重構(Refactor),就是在不改變軟件外部行爲的基礎上,改變軟件內部的結構,使其更加易於閱讀、易於維護和易於變動。
二、重構的動機
三、重構的價值
四、下載搭檔代碼並進行重構
public class Complex { double RealPart=0; double ImagePart=0; public Complex(){} public Complex(double RealPart,double ImagePart){ this.RealPart=RealPart; this.ImagePart=ImagePart; } public double getRealPart(){ return RealPart; } public double getImagePart(){ return ImagePart; } public String toString(){ String s = ""; double r=RealPart; double i=ImagePart; if(r==0&&i==0){ s="0"; } else if(r==0&&i!=0){ s=i+"i"; } else if(r!=0&&i==0){ s=r+""; } else if(r!=0&&i<0){ s=r+""+i+"i"; } else { s=r+"+"+i+"i"; } return s; } public boolean equals(Object obj){ if(this==obj){ return true; } else return false; } public Complex ComplexAdd(Complex a){ return new Complex(RealPart+a.getRealPart(),ImagePart+a.getImagePart()); } public Complex ComplexSub(Complex a){ return new Complex(RealPart-a.getRealPart(),ImagePart-a.getImagePart()); } public Complex ComplexMulti(Complex a){ double r=RealPart*a.getRealPart()-ImagePart*a.getImagePart(); double i =ImagePart*a.getRealPart()+RealPart*a.getImagePart(); return new Complex(r,i); } public Complex ComplexDiv(Complex a){ double r=(RealPart * a.ImagePart + ImagePart * a.RealPart) / (a.ImagePart * a.ImagePart + a.RealPart * a.RealPart); double i=(ImagePart * a.ImagePart + RealPart * a.RealPart) / (a.RealPart * a.RealPart + a.RealPart * a.RealPart); return new Complex(r,i); } }
/** * @author cjy * @date 2019/5/1 */ public class Complex { private double RealPart=0; private double ImagePart=0; public Complex(){} public Complex(double RealPart,double ImagePart){ this.RealPart=RealPart; this.ImagePart=ImagePart; } public double getRealPart(){ return RealPart; } public double getImagePart(){ return ImagePart; } @Override public String toString(){ String s = ""; double r=RealPart; double i=ImagePart; if(r==0&&i==0){ s="0"; } else if(r==0&&i!=0){ s=i+"i"; } else if(r!=0&&i==0){ s=r+""; } else if(r!=0&&i<0){ s=r+""+i+"i"; } else { s=r+"+"+i+"i"; } return s; } public boolean equals(Object obj){ if(this==obj){ return true; } else return false; } public Complex ComplexAdd(Complex a){ return new Complex(RealPart+a.getRealPart(),ImagePart+a.getImagePart()); } public Complex ComplexSub(Complex a){ return new Complex(RealPart-a.getRealPart(),ImagePart-a.getImagePart()); } public Complex ComplexMulti(Complex a){ double r=RealPart*a.getRealPart()-ImagePart*a.getImagePart(); double i =ImagePart*a.getRealPart()+RealPart*a.getImagePart(); return new Complex(r,i); } public Complex ComplexDiv(Complex a){ double r=(RealPart * a.ImagePart + ImagePart * a.RealPart) / (a.ImagePart * a.ImagePart + a.RealPart * a.RealPart); double i=(ImagePart * a.ImagePart + RealPart * a.RealPart) / (a.RealPart * a.RealPart + a.RealPart * a.RealPart); return new Complex(r,i); } }
JAAS( Java Authentication and Authentication Service, Java鑑別與安全服務):JAAS提供了在Java平臺上進行用戶身份鑑別的功能。
實驗代碼
public class Caesar { public static void main(String[] args) throws Exception{ String s=args[0]; int key=Integer.parseInt(args[1]); String es=""; for(int i=0;i<s.length( );i++) { char c=s.charAt(i); // 是小寫字母 if(c>='a' && c<='z') //移動key%26位 { c+=key%26; if(c<'a') { //向左超界 c+=26; } if(c>'z') { //向右超界 c-=26; } } // 是大寫字母 else if(c>='A' && c<='Z') { c+=key%26; if(c<'A') { c+=26; } if(c>'Z') { c-=26; } } es+=c; } System.out.println(es); } }
實驗截圖
碼雲連接:點擊進入連接
經過這一次的實驗,我對Java的學習更加深刻了。特別是對一個程序的理解。之前覺得只要把程序弄出來,可以實現想要的做用就能夠了。可是,作了實驗三以後,我知道了,一個程序作出來不是這麼簡單的,須要咱們考慮到不少方面。就像此次實驗,咱們寫完程序,還要學會規範程序。而後,另外一方面就是,還經過學習Java,聯繫到了其餘學科,這樣即兼顧了兩門學科的學習,還知道了兩門學科的聯繫,能把兩科都學得更好。