Java应用小实例总结
1.1 建造者模式
【静态内部类的引用------Builder构建器】
《
public static class Builder{
private AlertDialog dialog;
public Builder(){
dialog = new AlertDialog();
}
/*
public void setIcon(int icon){
dialog.icon = icon;
}*/
public Builder setTitle(String title){
dialog.title = title;
return this;
}
public Builder setMessage(String message){
dialog.message = message;
return this;
}
public Builder setIcon(int icon){
dialog.icon = icon;
return this;
}
public AlertDialog create(){
return dialog;
}
}
》
【
Builder b= newAlertDialog.Builder();
AlertDialog dialog =b.setIcon(1000)
.setTitle("千锋")
.setMessage("我在加班")
.create();
System.out.println(dialog); //建造者模式
】
1.2 接口回调与事件监听
【1:
//监听器接口
public interface Listener {
//抽象方法,一点击就....
void onClick();
}
2:
public class MyListener implements Listener {
public void onClick() {
System.out.println("访问服务器");
}
}
3:
public class Button {
private Listener listener; //聚合、组合
public void setListener(Listener listener) {
this.listener = listener;
}
//模拟按键被用户手指点击触发,就去执行监听器的逻辑
public void drive(){
listener.onClick();//调用逻辑部件、监听器的onClick逻辑
}
}
4:测试
Button button = new Button();//视图 按钮
MyListener listener = new MyListener();//逻辑点击后该怎么做
Cat cat = new Cat();
button.setListener(listener);//逻辑组装到视图
button.drive();//驱动按钮,模拟用户点击
】
1.3 反射机制实现低耦合代码
【
1:
public class Human {
private Weapon weapon; //聚合,组合
public void setWeapon(Weapon weapon){
this.weapon = weapon;
}
public void attack(){
weapon.attack(); //多态,向上转型子类对象,调用从父类复//写的方法
}
}
2:
BufferedReader br = new BufferedReader(new FileReader("asad/config.txt"));
String line = br.readLine();
Class clz = Class.forName(line);
Weapon w = (Weapon)clz.newInstance();
Human h = new Human();
h.setWeapon(w);
h.attack();
】
1.4 回文字符判定
【
//上海自来水来自海上
//黄山落叶松叶落山黄
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
String line = new Scanner(System.in).nextLine();
//将字符串转为字符数组
char[] array = line.toCharArray();
boolean flag =true;
for(int i=0;i<array.length/2;i++){ //除以2可以进行优化
// 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 冒泡排序
【
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
int[] array ={2,8,1,9,5,7};
sort(array);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void sort(int[] arr){//排序算法
for(int j=0;j<arr.length-1;j++){
for(int i=0;i<arr.length-1-j;i++){
//如果当前元素比右边的元素大
if(arr[i]>arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
}
】
1.6 选择排序
【
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
int[] array ={6,3,2,5,4,9,1};
sort(array);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void sort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int minIndex = i;//每次外层循环都把i作为默认最小值下标
//遍历默认最小值右边的子数组,遍历到最后
for(int j=i+1;j<arr.length;j++){
//如果扫描到的当前值比
if(arr[j] < arr[minIndex]){
minIndex = j;//最小值下标就改为当前元素的下标
}
}
if(minIndex != i){
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
】
1.7 插入排序
【
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
int[] array ={6,3,2,5,4,9,1};
sort(array);
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
public static void sort(int[] arr){
//
for(int i=1;i<arr.length;i++){
//每一次循环先把插入的值拿出来,也就是将其值赋给一个临时变量,临时保存下
int temp = arr[i];
//往左扫描,左边无东西扫描时停止循环
int j;
for(j=i;j>0;j--){
if(arr[j-1]>temp){//如果扫描到的数字比要插入的数字大
//往右拨,确切说往右赋值一份,或者说右边的数的值=左边的数
arr[j] = arr[j-1];
}
else{//如果扫描到的数字比要插入的数字小
break;
}
}
arr[j] = temp;
}
}
】
1.8 二进制数
【倒序输出情况:
1.输入一个数,输出它的二进制(倒序) */
import java.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进制数,打印出相应的二进制数(顺序)
public class Home2 {
public static void main(String[] args) {
int num = new Scanner(System.in).nextInt();
int ni=0;
int[] array = new int[50];
for(;num!=0;num/=2){
array[ni]=num%2;
ni++;
}
for(int i=ni-1;i>=0;i--){
System.out.print(array[i]);
}
}
}
】
Java应用小实例总结相关推荐
- Java 交互小实例:(ATM机模拟、饮料自助机模拟)
交互实例: ( 算法思想基本应用:基本语句的熟练掌握.逻辑思维.注意第二个小程序的小细节处理.) 1.ATM机 取款 ------模拟: 功能:查询余额.取款.存款.退卡. 具体代码: pac ...
- java axis2小实例_java webservice axis2简单开发实例
Web Service学习之axis 看着网上的资料学习了一下,做点笔记以防以后忘记. 一.准备工作: 到axis官方网站下载相应的jar包,我下的是1.4final版. http://www.doc ...
- java 模拟停车_Java多线程编程小实例模拟停车场系统
下面分享的是一个Java多线程模拟停车场系统的小实例(Java的应用还是很广泛的,哈哈),具体代码如下: Park类 public class Park { boolean []park=new bo ...
- java读写mysql数据库_Java读写MySQL数据库小实例
Java读写MySQL数据库小实例 首先需要安装和配置好MySQL数据库.接下来,先创建一个数据库,Java代码连接此数据库,然后读写. 假设基于MySQL命令行创建一个叫做:phildatab ...
- java局部变量全局变量,实例变量的理解
java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...
- android-sqlite小实例
学习android-sqlite数据库的一个小实例,只需要有数据库文档,就可以获取里面的数据,而不需要本地链接.此实例,是将数据库文档mydb.db里面某个表里面的信息显示出来,仅供参考,希望共同进步 ...
- spring aop实例讲解_小实例理解Spring中的AOP----面向切面编程
关于面向切面编程(Spring AOP),是在java面试中经常提及的,只有在充分理解了,日常工作中才能得心应手. 如何理解AOP呢?首先我们要思考为什么要使用切面编程,如下图: 对于一个系统来说保存 ...
- spring+mybatis之声明式事务管理初识(小实例)
前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理 理解事务管理之前,先通 ...
- 前端vue后端java,Vue调用后端java接口的实例代码_亦心_前端开发者
前段时间 做了个学校的春萌项目,其中用到 先上后端接口代码: package controller; import net.sf.json.JSONObject; import util.DBUtil ...
最新文章
- [项目过程中所遇到的各种问题记录]部署篇——项目部署过程中那些纠结的问题-SQLServer...
- Linus Torvalds:Linux背后的智者
- 软件测试工程师的角度看论证学问
- 网络广告推广浅析网站中的关键词密度要如何控制呢?
- HDU 1297 Children’s Queue
- ASP.NET运行环境配置
- Python常用模块之sys模块
- windows10中git-bash闪退的解决办法
- Python正则表达式:最短匹配
- SSM系类代码:org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer
- python 解析pys文件,并将其写入txt和excel文件
- pkpm弹性时程分析计算书怎么出_一套软件,带你掌握复杂建筑结构分析方法
- Matlab中hold on与hold off的用法
- 如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
- 用JAVA写一个俄罗斯方块游戏tetrisGame
- Mac Docker配置阿里云镜像(最新)
- 得到-薛兆丰的北大经济学课-0-目录
- 湿度传感器 DHT11
- 递归、回溯-图的m着色问题
- `Computer-Algorithm` 有向无环图DAG
热门文章
- 3GS到iPhone6P+ 历代iPhone屏幕尺寸、像素分辨率
- Flutter App感染a.gray.Bulimia.a病毒
- Linux离线安装Maven
- 计算机上的查找替换功能快速格式化,Excel 2016中使用查找替换功能应用技巧
- html2canvas图片跨域问题
- hive -- return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
- unity制作愤怒的小鸟笔记
- 记一个微商城促销方案实现流程图
- 如何计算EEG信号的香农熵Shannon entropy(附Matlab程序)
- 交互式多模型算法IMM——机动目标跟踪中的应用