×

java基础代码

java基础代码(如何有效提高Java代码的可重用性)

admin admin 发表于2023-07-28 20:56:44 浏览54 评论0

抢沙发发表评论

本文目录

如何有效提高Java代码的可重用性

大量结构、功能相近的冗余代码不仅增加了维护上的额外成本,而且更重要的是让代码变得不规范。提升代码的可重复性,首先要强调代码规范,如规范类名、方法名、变量名、换行符、代码宽度等,代码复用也是提升代码质量的重要手段,那么如何有效的提高代码的重用性,我总结以下几点:

利用面向对象的三大特点中的“继承和封装”,在开发过程中一定要重视封装,把需要重复调用的代码封装起来放到父类中,在需要调用的时候继承使用,这样代码就不会重复编写,整体代码是具有规范性的。

利用多态性将非基本数据类型转化为接口类型,把所有形式的参数改为接口形式,经过这个改动之后,参数可以是实现该接口的所有类的对象,而不仅仅是原来的类所创建的对象,由此能够对可能存在的大量的对象类型进行操作,我们就可以进一步提高代码的可重用能力。

另外,在开发过程中要注意是否可以重复调用一个服务接口来实现功能操作,而不是一个功能操作就创建一个接口服务,把多个功能需要的服务接口提升到上级目录中,这样这些功能就可以使用该接口服务的方法。

类似的代码可以考虑封装为工具类、父类、接口,而多个接口、父类、工具类交互、结合配置文件就形成技术框架,其中可能涉及到java反射、动态Shell脚本,甚至代码生成机制等技术。技术框架要统一维护,可以通过jar包方式来复用、经过多个项目验证锤炼、同时跟业务场景结合,就可以(可能)萃取、打造成用于解决典型业务场景的平台产品,多个平台产品结合加扩展开发就可以形成特定领域的技术解决方案。

这个基础的JAVA小代码 求解释

你好,很高兴帮你解答。首先解释一下instanceof这个关键字,你可以理解成“是不是”。如p instanceof Student翻译成p是不是一个学生? Person p = new Student(); //定义了一个变量p,是一个Student类型的对象,用Person类型来接收 //此时请坚持,p他是一个Student类new出来的对象,具有Student的属性和方法。其本身就是一个Student对象System.out.println(p instanceof Student); //p是不是一个学生?毫无疑问是true。 System.out.println(p instanceof Person); //p是不是一个人?一个学生当然也是一个人,也是对的。因为学生继承了人。 System.out.println(p instanceof Object); //p是不是一个对象?所有的类的祖宗都是Object,所以当然是true System.out.println(p instanceof System); //p是不是一个系统……

Java程序设计基础知识

《Java程序设计基础实验指导(第3版)》是陈国君教授主编的《java程序设计基础(第3版)》(清华大学出版社,2011年版)一书的配套实验用书。全书分16章,基本与《java程序设计基础(第3版)》中的16章一一对应,88个实验详细讲解了java语言的各个部分。书中的每个实验都给出了实例以及具体的上机指导,内容由浅入深、循序渐进,知识点全面。实验有目的地针对学习java语言过程中遇到的重点和难点,强调实用性和易学性,可以帮助读者进一步熟悉和掌握java语言的语法知识及程序设计的方法。

java经典编程案例有哪些

  1. java编程的记事本:

    import java.util.*;public class JieChengExample{public static void main(String args){Scanner input=new Scanner(System.in);int n,sum;Jiecheng jie=new Jiecheng();System.out.print(“输入n的值:“);//输入有几个阶乘相加n=input.nextInt();sum=0;for(int i=1;i《=n;i++){sum=sum+jie.jiecheng(i);//这是n个阶乘相加}System.out.println(“1!+2!+3!+....+n!的和是:“+sum);}}class Jiecheng{public int jiecheng(int temp)//算阶乘的方法{int sum=1;for(int i=1;i《=temp;i++){sum=sum*i; //计算阶乘}return sum;//将一个阶乘返回}}

2.java赛马游戏:

import java.util.Random;public class Test {public static void main(String args) {Competition c = new Competition();Thread T = new Thread(c);T.start();}}class Competition implements Runnable{int red = 0;int green = 0;int Speed = new int ;Competition(){}public void run(){Random r = new Random();for(int a= 0;a《500;a++){for(int j = 0;j《2;j++){Speed;}System.out.println(“red的速度为“+red);System.out.println(“green的速度为“+green);while(red 》=500 || green》=500){if(red 》=500){System.out.println(“red先抵达终点线“);}if(green 》= 500){System.out.println(“green先抵达终点线“);}if(green ==500 && red ==500 ){System.out.println(“两个同时到达“);}return;}}/* if(red 》green){System.out.println(“Redwin“+red);}if(red《green){System.out.println(“Greenwin“+green);}if(red == green){System.out.println(“equal“);*/

JAVA的介绍:

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

Java这个例子创建程序来教授一年级学生如何学习减法

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Random;public class Main {/*** @param args*/public static void main(String args) {// TODO Auto-generated method stubint a =0;int b=0;int c= 0;Random r1 = new Random();BufferedReader scan = new BufferedReader(new InputStreamReader(System.in));String str1 = null;boolean f=true;boolean result=true;while(f){while (result){a=r1.nextInt(10);//定义只产生10以内的随机数b=r1.nextInt(10);if(a》=b){c=a-b;System.out.print(“what is :“+ a+“-“+b+“\n“);break;}}if(!result){System.out.print(“请重新计算!“+“what is :“+ a+“-“+b+“\n“+“\n“);}try {str1=scan.readLine();//当输入exit时,程序关闭if(str1.equals(“exit“)){break;}else if(c==Integer.parseInt(str1)){System.out.print(“回答正确!“+“\n“);//计算正确,初始化参数a=0;b=0;c=0;result=true;}else{//回答错误,重新计算这条题目System.out.print(“回答错误!“+“\n“);result=false;}} catch (IOException e) {e.printStackTrace();}}System.out.print(“程序结束!“);}}

JAVA基础谁给我举个例子,好一点的关于JAVA的多态

假设有一个类 叫 鸟类,它拥有属性翅膀,拥有方法鸣叫,如下public class Bird{ private Wing wing; public void moo(){ System.out.println(“鸟叫声“); }}鸟类封装了 翅膀类和moo方法;另外有两个类都继承鸟类并重写了moo方法,分别是鹦鹉和麻雀如下:鹦鹉类:public class Parrot extends Bird{ public void moo(){ System.out.println(“鹦鹉的叫声“); }}麻雀类:public class Sparrow extends Bird{ public void moo(){ System.out.println(“麻雀的叫声“); }}方法重写应该懂吧,不懂自己找书看吧;然后你有个妻子她想听鸟叫,就有个妻子类public class Wife{ public void listen(Bird bird){ bird.moo(); } /*这时多态就很好的体现了,你妻子想听鸟叫,无论什么鸟都可以给她,但是你想让她和鹦鹉 *说话,你就买了一只鹦鹉传给listen方法,结果你妻子听到了鹦鹉的叫声,程序输出:鹦 *鹉的叫声 */ public static void main(String args) { new Wife().listen(new Parrot()); }}多态实现了动态绑定,让程序有了很好的扩展性,比如你以后想买一只燕子送给你妻子,就只需要写个燕子类Swallow继承Bird方法就可以了,而不需要再在妻子类里添加一个方法listen(Swallow swallow)……上面编码没用编译器,可能有错误,请谅解说得够详细了吧,感谢世界上有我这么好的人吧 ^_^

求个java语言的示例代码和IDE上的接收参数的操作,0基础能看懂的,写上详细注释的,谢谢

args就是参数,是一个字符串数组,也就是说你可以把它打印出来:

Main.java

在命令行编译并运行:

发现并没有反应,于是在运行时在后面加点东西:

就是这个作用

java 源代码 基础点的 谢谢

package com.regex;import java.io.*;import java.net.URLDecoder;import java.util.regex.*;public class Regex { private int REMARK=0; private int LOGIC=0; private int PHYSIC=0; boolean start=false;/** * @param args */ public static void main(String args) { //测试方法 // TODO Auto-generated method stub Regex re=new Regex(); re.regCount(“Regex.java“); System.out.println(“remark Line: “+re.REMARK); System.out.println(“logic Line: “+re.LOGIC); System.out.println(“physic Line: “+re.PHYSIC);}/** * @author BlueDance * @param s * @deprecated count */ public void regCount(String s){ String url=null; try { url=URLDecoder.decode(this.getClass().getResource(s).getPath(),“UTF-8“); } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } try { BufferedReader br=new BufferedReader(new FileReader(new File(url))); String s1=null; while((s1=br.readLine())!=null){ PHYSIC++; if(CheckChar(s1)==1){ REMARK++; System.out.println(“纯注释行:“+s1); } if(CheckChar(s1)==2){ LOGIC++; REMARK++; System.out.println(“非纯注释行:“+s1); } if(CheckChar(s1)==3) LOGIC++; } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } /** * * @param s * @return int * @version check s */ public int CheckChar(String s){ String s1=null; if(s!=null) s1=s.trim(); //System.out.println(regCheck(s1,re)); if(regCheck(s1,“(//.*)“)) //判断//开头的为纯注释行 return 1; if(regCheck(s1,“(.*) return false; } return true; } return false; } public int countNumber(String s,String y){ //此方法为我前面写的字符串出现次数统计方法,不懂的可以看我前面的文章 int count=0; String k=y.split(s); if(y.lastIndexOf(s)==(y.length()-s.length())) count=k.length; else count=k.length-1; if(count==0) System.out.println (“字符串\““+s+“\“在字符串\““+y+“\“没有出现过“); else return count; return -1; }}import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GoodLucky extends JFrame implements ActionListener{ JTextField tf = new JTextField(); //实例化一个文本域 //设置两个按钮 JButton b1 = new JButton(“开始“); JButton b2 = new JButton(“停止“); boolean isGo = false; //构造函数 public GoodLucky(){ b1.setActionCommand(“start“);//在开始按钮上设置一个动作监听 start JPanel p = new JPanel(); //实例化一个可视化容器 //将两个按钮添加到可视化容器上面,用add方法 p.add(b1); p.add(b2); //在两个按钮上增加监听的属性,自动调用下面的监听处理方法actionPerformed(ActionEvent e),如果要代码有更好的可读性,可用内部类实现动作 //监听处理。 b1.addActionListener(this); b2.addActionListener(this); //将停止按钮设置为不可(即不可按的状态) b2.setEnabled(false); this.getContentPane().add(tf,“North“); //将上面的文本域放在面板的北方,也就是上面(上北下南左西右东) this.getContentPane().add(p,“South“); //将可视化容器pannel放在南边,也就是下面 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置用户在此窗体上发起 “close“ 时默认执行的操作,参数EXIT_ON_CLOSE是使用 System exit 方法退出应用程序。仅在应用程序中使用 this.setSize(300,200); //设置面板大小,宽和高 this.setLocation(300,300); //设置面板刚开始的出现的位置 Cursor cu = new Cursor(Cursor.HAND_CURSOR); //用指定名称创建一个新的定制光标对象,参数表示手状光标类型 this.setCursor(cu); //为指定的光标设置光标图像,即设置光标图像为上面所创建的手状光标类型 this.setVisible(true); //将面板可视化设置为true,即可视,如果为false,即程序运行时面板会隐藏 tf.setText(“welcome you! “); //设置面板的标题为欢迎 this.go(); //调用go方法 } public void go(){ while(true){ //这里是死循环,也就是说用户不点击停止按钮的话他一直循环出现随机数,直到用户点击停止按钮循环才能推出,具体流程在actionPerformed方法中控制。 if(isGo == true){ //上面所定义的isGo的初始值为false,所以程序第一次到此会跳过 String s = ““; //设置空字符串 for(int j = 1; j 《= 7;j++){ //产生7个随机数 int i = (int)(Math.random() * 36) + 1;//每个随机数产生方式,这里定义灵活,可以自由定义随机数产生的方式 if(i 《 10){ s = s + “ 0“ + i; //如果产生的随机数小于10的话做处理:这里就牵扯到一个重要的概念,简单叙述一下: /* 当一个字符串与一个整型数项相加的意思是连接,上面的s = s + “ 0“ + i的意思是字符串s链接0再连接整型i值,而不会导致0和整型的i相加, 产生的效果为s0i,由于s为空字符串(上面定义过的),所以当i小于零时,在个位数前面加上0,比如产生的随机数i为7的话,显示效果为 07. */ }else{ s = s + “ “ + i; //如果产生的随机数比10打的话,那么加上空格显示,即数字和数字之间有个空格 } //以上循环循环七次,以保证能出现7个随机数 } tf.setText(s); //将产生的随机数全部显示在文本域上,用文本域对象tf调用它的设置文本的方法setText(String)实现。 } //以下为线程延迟 try{ Thread.sleep(10); //线程类同步方法sleep,睡眠方法,括号里的单位为ms。 }catch(java.lang.InterruptedException e){ e.printStackTrace(); //异常捕获,不用多说。 } } } //以下是上面设置的事件监听的具体处理办法,即监听时间处理方法,自动调用 public void actionPerformed(ActionEvent e){ //传入一个动作事件的参数e String s = e.getActionCommand(); //设置字符串s来存储获得动作监听,上面的start /* 以下这个条件语句块的作用为:用户点击开始后(捕获start,用方法getActionCommand()),将命令触发设置为true,从而执行上面的go方法中的循环体(因为循环体中要求isGo参数为true,而初始为false)。 执行循环快产生随机数,并将开始按钮不可化,而用户只可以使用停止按钮去停止。如果用户按下停止时,也就是没有传入参数“start”的时候, 执行else语句块中的语句,isGo设置为false,将不执行上面go中的循环语句块,从而停止产生随机数,并显示,并且把开始按钮设置为可用,而把 停止按钮设置为不可用,等待用户按下开始再去开始新一轮循环产生随机数。 */ if(s.equals(“start“)){ //如果捕获到start,也就是用户触发了动作监听器,那么下面处理 isGo = true; //设置isGo为true b1.setEnabled(false); //将开始按钮设置为不可用 b2.setEnabled(true); //将停止按钮设置为可用 }else{ isGo = false; //将isGo设置为false,isGo为循环标志位 b2.setEnabled(false); //设置停止按钮为不可用(注意看是b2,b2是停止按钮) b1.setEnabled(true); //设置开始按钮为可用 } } public static void main(String args){ new GoodLucky(); //产生类的实例,执行方法 } }