JAVA编译错误 “No enclosing instance of type XXX is accessible”的解决方法

public class Main {
	public class Fraction{
		public int dividend;//被除数
		public int divisor;//除数
		
		Fraction(int a, int b)
		{
			dividend = a/gcd(a,b);
			divisor = b/gcd(a,b);
		}
		
		double toDouble()
		{
			return (double)dividend/(double)divisor;
		}
		 Fraction plus(Fraction r)
		{
			int lcm = lcm(divisor,r.divisor);
			int gcd = gcd(divisor,r.divisor);
			int new_dividend = dividend * r.divisor / gcd + divisor * r.dividend / gcd;
			int new_divisor = lcm;
			
			return new Fraction(new_dividend, new_divisor);
		}
		
		 Fraction multiply(Fraction r)
		{
			int new_dividend = dividend * r.dividend;
			int new_divisor = divisor * r.divisor;
			this.dividend = new_dividend/gcd(new_dividend,new_divisor);
			this.divisor = new_divisor/gcd(new_dividend,new_divisor);
			return new Fraction(dividend,divisor);
		}

刚学java,对于类不是很熟悉,了解得不深,写出来后报错
No enclosing instance of type XXX is accessible. Must qualify the allocation with an enclosing instance of type Main (e.g. x.new A() where x is an instance of Main).    Main.java    /week01/src/week01    line 83    Java Problem

public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		Fraction a = new Fraction(in.nextInt(), in.nextInt());//抱歉

		Fraction b = new Fraction(in.nextInt(),in.nextInt());

在网上查了一下,发现这是 因为内部类是动态的(无static关键字修饰),而main方法是静态的,不能直接调用。

修改方法就是在类的前面加一个static 修饰,这样就行了

public class Main {
	public static class Fraction{
		public int dividend;//被除数
		public int divisor;//除数
		



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值