美文网首页
Java应用小实例总结

Java应用小实例总结

作者: 征程_Journey | 来源:发表于2017-05-21 11:25 被阅读0次

    1.1    建造者模式

    【静态内部类的引用------Builder构建器】

    publicstaticclassBuilder{

    privateAlertDialogdialog;

    publicBuilder(){

    dialog=newAlertDialog();

    }

    /*

    public void setIcon(inticon){

    dialog.icon = icon;

    }*/

    publicBuilder setTitle(Stringtitle){

    dialog.title=title;

    returnthis;

    }

    publicBuilder setMessage(Stringmessage){

    dialog.message=message;

    returnthis;

    }

    publicBuilder setIcon(inticon){

    dialog.icon=icon;

    returnthis;

    }

    publicAlertDialog create(){

    returndialog;

    }

    }

    Builderb=newAlertDialog.Builder();

    AlertDialogdialog=b.setIcon(1000)

    .setTitle("千锋")

    .setMessage("我在加班")

    .create();

    System.out.println(dialog);//建造者模式

    1.2    接口回调与事件监听

    【1:

    //监听器接口

    publicinterfaceListener {

    //抽象方法,一点击就....

    voidonClick();

    }

    2:

    publicclassMyListenerimplementsListener {

    publicvoidonClick() {

    System.out.println("访问服务器");

    }

    }

    3:

    publicclassButton {

    privateListenerlistener;   //聚合、组合

    publicvoidsetListener(Listenerlistener) {

    this.listener=listener;

    }

    //模拟按键被用户手指点击触发,就去执行监听器的逻辑

    publicvoiddrive(){

    listener.onClick();//调用逻辑部件、监听器的onClick逻辑

    }

    }

    4:测试

    Buttonbutton=newButton();//视图按钮

    MyListenerlistener=newMyListener();//逻辑点击后该怎么做

    Catcat=newCat();

    button.setListener(listener);//逻辑组装到视图

    button.drive();//驱动按钮,模拟用户点击

    1.3    反射机制实现低耦合代码

    1:

    publicclassHuman {

    privateWeaponweapon;    //聚合,组合

    publicvoidsetWeapon(Weaponweapon){

    this.weapon=weapon;

    }

    publicvoidattack(){

    weapon.attack();        //多态,向上转型子类对象,调用从父类复//写的方法

    }

    }

    2:

    BufferedReaderbr=newBufferedReader(newFileReader("asad/config.txt"));

    Stringline=br.readLine();

    Classclz= Class.forName(line);

    Weaponw= (Weapon)clz.newInstance();

    Humanh=newHuman();

    h.setWeapon(w);

    h.attack();

    1.4    回文字符判定

    //上海自来水来自海上

    //黄山落叶松叶落山黄

    publicstaticvoidmain(String[]args) {

    //TODOAuto-generatedmethod stub

    Stringline=newScanner(System.in).nextLine();

    //将字符串转为字符数组

    char[]array=line.toCharArray();

    booleanflag=true;

    for(inti=0;i

    //      System.out.println(array[i]);

    if(array[i] !=array[array.length-i-1]){

    flag=false;

    break;

    }

    }//写一个判断用户输入是否回文程序

    if(flag){

    System.out.println("是回文");

    }

    else{

    System.out.println("不是回文");

    }

    }

    1.5    冒泡排序

    publicstaticvoidmain(String[]args) {

    //TODOAuto-generatedmethod stub

    int[]array={2,8,1,9,5,7};

    sort(array);

    for(inti=0;i

    System.out.println(array[i]);

    }

    }

    publicstaticvoidsort(int[]arr){//排序算法

    for(intj=0;j

    for(inti=0;i

    //如果当前元素比右边的元素大

    if(arr[i]>arr[i+1]){

    inttemp=arr[i];

    arr[i] =arr[i+1];

    arr[i+1] =temp;

    }

    }

    }

    }

    1.6    选择排序

    publicstaticvoidmain(String[]args) {

    //TODOAuto-generatedmethod stub

    int[]array={6,3,2,5,4,9,1};

    sort(array);

    for(inti=0;i

    System.out.println(array[i]);

    }

    }

    publicstaticvoidsort(int[]arr){

    for(inti=0;i

    intminIndex=i;//每次外层循环都把i作为默认最小值下标

    //遍历默认最小值右边的子数组,遍历到最后

    for(intj=i+1;j

    //如果扫描到的当前值比

    if(arr[j]

    minIndex=j;//最小值下标就改为当前元素的下标

    }

    }

    if(minIndex!=i){

    inttemp=arr[minIndex];

    arr[minIndex] =arr[i];

    arr[i] =temp;

    }

    }

    }

    1.7    插入排序

    publicstaticvoidmain(String[]args) {

    //TODOAuto-generatedmethod stub

    int[]array={6,3,2,5,4,9,1};

    sort(array);

    for(inti=0;i

    System.out.println(array[i]);

    }

    }

    publicstaticvoidsort(int[]arr){

    //

    for(inti=1;i

    //每一次循环先把插入的值拿出来,也就是将其值赋给一个临时变量,临时保存下

    inttemp=arr[i];

    //往左扫描,左边无东西扫描时停止循环

    intj;

    for(j=i;j>0;j--){

    if(arr[j-1]>temp){//如果扫描到的数字比要插入的数字大

    //往右拨,确切说往右赋值一份,或者说右边的数的值=左边的数

    arr[j] =arr[j-1];

    }

    else{//如果扫描到的数字比要插入的数字小

    break;

    }

    }

    arr[j] =temp;

    }

    }

    1.8    二进制数

    【倒序输出情况:

    1.输入一个数,输出它的二进制(倒序) */

    importJava.util.Scanner;

    public class Test8{

    publicstatic void main(String[] args){

    Scanners = new Scanner(System.in);

    intnum = s.nextInt();

    intyu = 0;

    while(num>0){

    yu= num%2;

    num= num/2;

    System.out.print(yu);

    }

    for(;n!=0;n/=2){

    System.out.print(n%2);

    }

    }

    }

    【二进制顺序输出:

    //二、让用户输入一个10进制数,打印出相应的二进制数(顺序)

    publicclassHome2 {

    publicstaticvoidmain(String[]args) {

    intnum=newScanner(System.in).nextInt();

    intni=0;

    int[]array=newint[50];

    for(;num!=0;num/=2){

    array[ni]=num%2;

    ni++;

    }

    for(inti=ni-1;i>=0;i--){

    System.out.print(array[i]);

    }

    }

    }

    相关文章

      网友评论

          本文标题: Java应用小实例总结

          本文链接:https://www.haomeiwen.com/subject/fhbmxxtx.html