设计一个类,名为NumOP,类中提供四个静态成员方法,访问修饰符均为public,能够实现对两个整数进行四则运算,即 :
求和 add
求差 subtract
求积 multiply
求商 div
按照如下要求定义主方法:
在NumOP类中定义主方法main,用户可通过用户界面输入两整数,分别依次调用四方法,输出结果
定义一个新的类TestOP,实现同样的功能,依次调用四方法,分别输出
java中static使用之静态方法注意点 - 我是坏男孩 - 博客园
java-源文件中可以有多个类,但是最多只能有一个public修饰 - 心香 - 博客园
https://zhidao.baidu.com/question/326542735.html
如果是同一个包的话,调用是比较简单的,主要看类里面数据的权限修饰符。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)
Java代码
class A
{
protected int weight ;
protected int f( int a,int b )
{
// 方法体
}
}
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4); //合法
}
}
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;
没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
例子:
public class A{
int num ;
public void print(){
System.out.println(num) ;
}
}
public class B{
public static void main(String[] args){
A a = new A() ;
a.num = 10 ; //操作数据
a.print() ; //调用方法
}
}
Java代码
class A
{
int weight ;
int f( int a,int b )
{
// 方法体
}
}
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4); //合法
}
}
private: 只能在本类中访问。
Java代码
class Test
{
private int money;
Test()
{
money=2000;
}
private int getMoney()
{
return money;
}
public static void main(String args[])
{
Test te=new Test();
te.money=3000; //合法
int m=te.getMoney(); //合法
System.out.println("money="+m);
}
}
PS: 实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。
import java.util.Scanner;
public class NumOp
{
public static int add(int a,int b){
return a+b;
}
public static int subtract(int a,int b){
if(a>b)return a-b;
else return b-a;
}
public static int multiply(int a,int b){
return a*b;
}
public static double div(int a,int b){
if(a>b) return a/b;
else return b/a;
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int a=scan.nextInt();
int b=scan.nextInt();
System.out.print("1:");
System.out.println(add(a,b));
System.out.print("2:");
System.out.println(subtract(a,b));
System.out.print("3:");
System.out.println(multiply(a,b));
System.out.print("4:");
System.out.println(div(a,b));
}
}
//------------------------------------
class TestOp
{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int c=scan.nextInt();
int d=scan.nextInt();
System.out.print("1:");
System.out.println(NumOp.add(c,d));//同一个包不同类的互相引用
System.out.print("2:");
System.out.println(NumOp.subtract(c,d));
System.out.print("3:");
System.out.println(NumOp.multiply(c,d));
System.out.print("4:");
System.out.println(NumOp.div(c,d));
}
}
//----------------------------------------
网友评论