JAVA的加,减,乘,除运算方法首先可以把计算器看成是一个对象就是一个类,它有加、减、乘、除功能 , 这四个就是这个类的方法;你可以给这个类定义两个成员变量
int
x、int
y
然后分别用这四个方法对x
、y
实行加、减、乘、除并返回其值
代码大概如下:
class
counter{
private
int
x;
private
int
y;
public
counter(){
}
public
counter(int
x,int
y){
this.x=x;
this.y=y;
}
public
double
adding(){
//加运算
return
x+y;
}
public
double
minus(){
//减运算
return
x-y;
}
public
double
times(){
//乘运算
return
x*y;
}
public
double
divide(){
//除运算
return
x/y;
}
}
//测试类
public
class
test{
public
static
void
main(string[]
args){
counter
c=new
counter(5,4);//实例化
system.out.println(c.adding());//输出加的结果
system.out.println(c.minus());//输出减的结果
system.out.println(c.times());//输出乘的结果
system.out.println(c.divide());//输出除的结果
}
}
希望对你有帮助
加减乘除运算(Java)实际上这相当于javascript的eval方法 , 以下是该方法的java实现:
//Eval.java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class Eval {
public int eval(String exp){
ListString list = infixExpToPostExp(exp);//转化成后缀表达式
return doEval(list);//真正求值
}
//遇到操作符压栈,遇到表达式从后缀表达式中弹出两个数,计算出结果,压入堆栈
private int doEval(ListString list) {
StackString stack =new StackString();
String element;
int n1,n2,result;
try{
for(int i = 0; ilist.size();i++){
element = list.get(i);
if(isOperator(element)){
n1 = Integer.parseInt(stack.pop());
n2 = Integer.parseInt(stack.pop());
result = doOperate(n1,n2,element);
stack.push(new Integer(result).toString());
}else{
stack.push(element);
}
}
return Integer.parseInt(stack.pop());
}catch(RuntimeException e){
throw new IllegalExpressionException(e.getMessage());
}
}
private int doOperate(int n1, int n2, String operator) {
if(operator.equals("+"))
return n1 + n2;
else if(operator.equals("-"))
return n1 - n2;
else if(operator.equals("*"))
return n1 * n2;
else
return n1 / n2;
}
private boolean isOperator(String str){
return str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/");
}
private ListString infixExpToPostExp(String exp){//将中缀表达式转化成为后缀表达式
ListString postExp = new ArrayListString();//存放转化的后缀表达式的链表
StringBuffer numBuffer = new StringBuffer();//用来保存一个数的
StackCharacter opStack = new StackCharacter();//操作符栈
char ch,preChar;
opStack.push('#');
try{
for(int i = 0; iexp.length();){
ch = exp.charAt(i);
switch(ch){
case '+':
case '-':
case '*':
case '/':
preChar = opStack.peek();
//如果栈里面的操作符优先级比当前的大,则把栈中优先级大的都添加到后缀表达式列表中
while(priority(preChar) = priority(ch)){
postExp.add(""+preChar);
opStack.pop();
preChar = opStack.peek();
}
opStack.push(ch);
i++;
break;
case '(':
//左括号直接压栈
推荐阅读
- postgre时间类型的简单介绍
- GIS应用统计表格数据,gis数据汇总
- sqlserver2008r2慢的简单介绍
- go语言判断变量什么类型 go查看变量类型
- 直播电商如何打拼,直播电商怎么做
- 幻萌网络招聘游戏动作师,幻萌网络招聘游戏动作师傅
- 区块链应该如何发展,区块链技术如何实现
- mysql自增长怎么使用 mysql自增长 设置值
- thinkphp5微博登陆,微博网站登录