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:
//监听器接口
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:
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();
】
【
//上海自来水来自海上
//黄山落叶松叶落山黄
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("不是回文");
}
}
】
【
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;
}
}
}
}
】
【
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;
}
}
}
】
【
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.输入一个数,输出它的二进制(倒序) */
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]);
}
}
}
】
网友评论