您的位置:首页 > 移动开发 > Objective-C

第七天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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: