5个JAVA入门必看的经典实例
入门必看的5个JAVA经典实例,供大家参考,具体内容如下
1.一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处
packagecom.softeem.demo; /** *@authorleno *动物的接口 */ interfaceAnimal{ publicvoideat(Foodfood); } /** *@authorleno *一种动物类:猫 */ classCatimplementsAnimal{ publicvoideat(Foodfood){ System.out.println("小猫吃"+food.getName()); } } /** *@authorleno *一种动物类:狗 */ classDogimplementsAnimal{ publicvoideat(Foodfood){ System.out.println("小狗啃"+food.getName()); } } /** *@authorleno *食物抽象类 */ abstractclassFood{ protectedStringname; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } } /** *@authorleno *一种食物类:鱼 */ classFishextendsFood{ publicFish(Stringname){ this.name=name; } } /** *@authorleno *一种食物类:骨头 */ classBoneextendsFood{ publicBone(Stringname){ this.name=name; } } /** *@authorleno *饲养员类 * */ classFeeder{ /** *饲养员给某种动物喂某种食物 *@paramanimal *@paramfood */ publicvoidfeed(Animalanimal,Foodfood){ animal.eat(food); } } /** *@authorleno *测试饲养员给动物喂食物 */ publicclassTestFeeder{ publicstaticvoidmain(String[]args){ Feederfeeder=newFeeder(); Animalanimal=newDog(); Foodfood=newBone("肉骨头"); feeder.feed(animal,food);//给狗喂肉骨头 animal=newCat(); food=newFish("鱼"); feeder.feed(animal,food);//给猫喂鱼 } }
2.做一个单子模式的类,只加载一次属性文件
packagecom.softeem.demo; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.io.InputStream; importjava.util.Properties; /** *@authorleno单子模式,保证在整个应用期间只加载一次配置属性文件 */ publicclassSingleton{ privatestaticSingletoninstance; privatestaticfinalStringCONFIG_FILE_PATH="E:\\config.properties"; privatePropertiesconfig; privateSingleton(){ config=newProperties(); InputStreamis; try{ is=newFileInputStream(CONFIG_FILE_PATH); config.load(is); is.close(); }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } publicstaticSingletongetInstance(){ if(instance==null){ instance=newSingleton(); } returninstance; } publicPropertiesgetConfig(){ returnconfig; } publicvoidsetConfig(Propertiesconfig){ this.config=config; } }
3.用JAVA中的多线程示例银行取款问题
packagecom.softeem.demo; /** *@authorleno *账户类 *默认有余额,可以取款 */ classAccount{ privatefloatbalance=1000; publicfloatgetBalance(){ returnbalance; } publicvoidsetBalance(floatbalance){ this.balance=balance; } /** *取款的方法需要同步 *@parammoney */ publicsynchronizedvoidwithdrawals(floatmoney){ if(balance>=money){ System.out.println("被取走"+money+"元!"); try{ Thread.sleep(1000); }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } balance-=money; }else{ System.out.println("对不起,余额不足!"); } } } /** *@authorleno *银行卡 */ classTestAccount1extendsThread{ privateAccountaccount; publicTestAccount1(Accountaccount){ this.account=account; } @Override publicvoidrun(){ account.withdrawals(800); System.out.println("余额为:"+account.getBalance()+"元!"); } } /** *@authorleno *存折 */ classTestAccount2extendsThread{ privateAccountaccount; publicTestAccount2(Accountaccount){ this.account=account; } @Override publicvoidrun(){ account.withdrawals(700); System.out.println("余额为:"+account.getBalance()+"元!"); } } publicclassTest{ publicstaticvoidmain(String[]args){ Accountaccount=newAccount(); TestAccount1testAccount1=newTestAccount1(account); testAccount1.start(); TestAccount2testAccount2=newTestAccount2(account); testAccount2.start(); } }
4.用JAVA中的多线程示例生产者和消费者问题
packagecom.softeem.demo; classProducerimplementsRunnable{ privateSyncStackstack; publicProducer(SyncStackstack){ this.stack=stack; } publicvoidrun(){ for(inti=0;i5.编程实现序列化的Student(sno,sname)对象在网络上的传输
packagecom.softeem.demo; importjava.io.IOException; importjava.io.ObjectInputStream; importjava.io.ObjectOutputStream; importjava.io.Serializable; importjava.net.ServerSocket; importjava.net.Socket; classStudentimplementsSerializable{ privateintsno; privateStringsname; publicStudent(intsno,Stringsname){ this.sno=sno; this.sname=sname; } publicintgetSno(){ returnsno; } publicvoidsetSno(intsno){ this.sno=sno; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ this.sname=sname; } @Override publicStringtoString(){ return"学号:"+sno+";姓名:"+sname; } } classMyClientextendsThread{ @Override publicvoidrun(){ try{ Sockets=newSocket("localhost",9999); ObjectInputStreamois=newObjectInputStream(s.getInputStream()); Studentstu=(Student)ois.readObject(); Stringmsg="客户端程序收到服务器端程序传输过来的学生对象>>"+stu; System.out.println(msg); ois.close(); s.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(ClassNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } classMyServerextendsThread{ @Override publicvoidrun(){ try{ ServerSocketss=newServerSocket(9999); Sockets=ss.accept(); ObjectOutputStreamops=newObjectOutputStream(s.getOutputStream()); Studentstu=newStudent(1,"赵本山"); ops.writeObject(stu); ops.close(); s.close(); ss.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } publicclassTestTransfer{ publicstaticvoidmain(String[]args){ newMyServer().start(); newMyClient().start(); } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。