Dart代码运行报错:找不到main方法,请求技术支持
问题原因
Dart程序的入口main函数必须是顶级函数(定义在所有类的外部),你把main定义成了Myclass的静态方法,导致运行时找不到程序入口,因此出现"No main method found"的错误。
修复后的代码
import 'dart:io'; class Area { double calculateCircleArea(double r) { double area = 3.14 * r * r; return area; } } class Myclass extends Area { @override double calculateCircleArea(double r) { double area = 3.14 * r * r; print(area); return area; } } // 将main函数移到类外部,作为顶级函数 void main(List<String> args) { Myclass mc = Myclass(); print("Enter the radius"); double rad = double.parse(stdin.readLineSync()!); print("Area of the circle is"); mc.calculateCircleArea(rad); }
额外优化建议
- 不需要在
Myclass里实例化Area,因为Myclass已经继承了Area,可直接使用父类方法 - 计算圆面积时,建议用
dart:math库的pi常量替代手动写的3.14,精度更准确,优化后代码如下:
import 'dart:io'; import 'dart:math'; class Area { double calculateCircleArea(double r) { double area = pi * r * r; return area; } } class Myclass extends Area { @override double calculateCircleArea(double r) { double area = pi * r * r; print(area); return area; } } void main(List<String> args) { Myclass mc = Myclass(); print("Enter the radius"); double rad = double.parse(stdin.readLineSync()!); print("Area of the circle is"); mc.calculateCircleArea(rad); }
内容的提问来源于stack exchange,提问作者AKHIL JAMES
相关产品推荐
相关产品推荐

