第七天Object类和异常
2015-07-22 21:05
567 查看
递归
用递归方法求1+2+…+1000的和package com.baidu.test3; public class Add { private int i=1; public int sum=0; public void add(){ if(i<1001){ sum=sum+i; i++; add(); } } }
public class Test { public static void main (String []args){ Add a=new Add(); a.add(); System.out.println(a.sum); } }
简单的四则运算
package com.baidu.test3; import java.util.Scanner; public class Test { public static void main (String []args){ Scanner scanner=new Scanner(System.in); String s=scanner.nextLine(); MyStackNum num =new MyStackNum(); MyStackChar fuhao=new MyStackChar(); String s1=""; for(int i=0;i<s.length();i++){ char c=s.charAt(i); if(Character.isDigit(c)){ s1=s1+c; }else{ num.push(Integer.parseInt(s1)); if(c=='='){ char top=fuhao.pop(); int after=num.pop(); int befor=num.pop(); num.push(yunsan(befor,top,after)); if(fuhao.getIndex()==-1){ System.out.println(num.pop()); }else{ bianli(num,fuhao,c); System.out.println(num.pop()); } }else{ s1=""; if(fuhao.getIndex()==-1){ fuhao.push(c); }else{ bianli(num,fuhao,c); } } } } } private static void bianli(MyStackNum num, MyStackChar fuhao, char c) { if(fuhao.getIndex()==-1){ fuhao.push(c); return; } char top=fuhao.getTop(); if(youxianji(c,top)){ fuhao.push(c); }else{ top=fuhao.pop(); int after=num.pop(); int befor=num.pop(); num.push(yunsan(befor,top,after)); bianli(num,fuhao,c); } } private static int yunsan(int befor, char c, int after) { int i=0; switch(c){ case '+': i=befor+after; break; case'-': i=befor-after; break; case'*': i=befor*after; break; case'/': i=befor/after; break; } return i; } private static boolean youxianji(char c, char top) { if(c=='*'||c=='/'){ if(top=='*'||top=='/'){ return false; } return true; } return false; } }
package com.baidu.test3; public class MyStackChar { private char[] array=new char[30]; private int index=-1; public void push(char c){ index++; array[index]=c; } public char pop(){ char j=array[index]; index--; return j; } public char getTop(){ return array[index]; } public int getIndex(){ return index; } }
package com.baidu.test3; public class MyStackNum { public int[] getArray(){ return array; } private int[] array=new int[30]; private int index=-1; public void push(int i){ index++; array[index]=i; } public int pop(){ int j=array[index]; index--; return j; } public int getTop(){ return array[index]; } public int getIndex(){ return index; } }
Object类
Java 所有引用数据类型全部继承于Object类Object类的equals()方法的默认是现实使用“==”运算符比较两个对象的引用地址,而不是比较两个对象的内容,所以要想真正的比较两个对象的内容,需要在自定义类中重写equals()方法。
package com.baidu.test4; public class Student { private String name; private int id; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public boolean equals(Object obj){ if(obj!=null&&obj instanceof Student){ return((Student)obj).getId()==this.id; } return false; }//重写equals()方法 public String toString(){ return this.name; }//toString()方法的功能是将一个对象返回字符串形式,但是通常会重写toString()方法,为对象提供一个特定的输出模式。 }
public class Test { public static void main(String[] args) { Student zhangsan=new Student(); zhangsan.setId(1); zhangsan.setName("张三"); Student lisi=new Student(); lisi.setId(1); System.out.println(zhangsan.equals(lisi));//true System.out.println(zhangsan);//张三
若没有重写toString()方法,则输出结果如下:
异常
自定义异常
继承exception类—>重写printStackTrace()方法public class Teacher { private String name; public String getName() { return name; } public void setName(String name) throws MyException { if(name.equals("张三")){ throw new MyException(); } this.name = name; } }
package com.baidu.test4; import java.io.PrintStream; public class MyException extends Exception { @Override public void printStackTrace() { System.out.println("不叫张三"); super.printStackTrace(); } }
public class Test1 { public static void main(String[] args) { Teacher zhangsan=new Teacher(); try{ zhangsan.setName("张三"); }catch(MyException e){ e.printStackTrace(); } System.out.println("程序运行完成"); } }
InputStream
package com.baidu.test4; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Test2 { public static void main(String[] args) { File f=new File("D://Hello.java"); try{ byte[] array=new byte[1024]; FileInputStream i=new FileInputStream(f); int read=i.read(array); System.out.println(new String(array)); while(read!=-1){ read=i.read(array); System.out.println(new String(array)); } }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } }
相关文章推荐
- 【iOS开发之Objective-C】书签管理器项目
- Object类、JAVA的异常处理机制
- Java的Object类
- 第二周第三天([输入一个字符串,然后输出字符串的运算结果] [object][异常][IO流,读取D盘某个文件])
- Objective-C学习笔记(三)——用Objective-C编写第一个程序:Hello,World!
- asp:ObjectDataSource+asp:GridView 实现真分页
- 刨根问底Objective-C Runtime(4)- 成员变量与属性
- [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第二章~第七章
- 刨根问底Objective-C Runtime(3)- 消息 和 Category
- 刨根问底Objective-C Runtime(2)- Object & Class & Meta Class
- 刨根问底Objective-C Runtime(1)- Self & Super
- NSObject 的实现分析
- Associative机制使用场景[objective-c有两个扩展机制:category扩展方法和associative扩展属性]
- 关于pch文件
- Objective-C GCC Code Block Evaluation C Extension ({…})语法
- object-c 知识点01
- 【iOS开发系列】NSObject方法介绍
- OC学习笔记之self关键字
- Objective-C学习之旅 第二篇
- OC学习笔记之description