public class UseClass_1 { /**
* @param args
*/
class Point{
int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle{
Point center=new Point(0,0);
double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public double area(){
return Math.PI*radius*radius;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Point p =new Point(7,8);
Circle c=new Circle(p.x,p.y,9);
System.out.println("圆中心点在"+"("+Point.x+","+Point.y+")");
System.out.println("半径为"+Circle.radius);
System.out.println("圆的面积为"+Circle.area());
}
}
这个程序出了什么问题、、、
??
* @param args
*/
class Point{
int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle{
Point center=new Point(0,0);
double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public double area(){
return Math.PI*radius*radius;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Point p =new Point(7,8);
Circle c=new Circle(p.x,p.y,9);
System.out.println("圆中心点在"+"("+Point.x+","+Point.y+")");
System.out.println("半径为"+Circle.radius);
System.out.println("圆的面积为"+Circle.area());
}
}
这个程序出了什么问题、、、
??
System.out.println("半径为" + c.radius);
System.out.println("圆的面积为" + c.area());不过一楼解释的不完全准确,是因为main函数本身是static的,所以它引用的内部类也必须是static的;非static函数,可以直接new非static的内部类。
public static void main(String[] args) {
UseClass_1 uc = new UseClass_1();
UseClass_1.Point p = uc.new Point(7, 8);
UseClass_1.Circle c = uc.new Circle(p.x, p.y, 9); System.out.println("圆中心点在" + "(" + p.x + "," + p.y + ")");
System.out.println("半径为" + c.radius);
System.out.println("圆的面积为" + c.area()); }
*把这个类放到类外面声明
*/
class Point{
int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
/**
*把这个类放到类外面声明
*/
class Circle{
Point center=new Point(0,0);
double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public double area(){
return Math.PI*radius*radius;
}
}
public class UseClass_1 {/**
* @param args
*/public static void main(String[] args) {
// TODO Auto-generated method stub
Point p =new Point(7,8);
Circle c=new Circle(p.x,p.y,9);/**
*如果使用类名.方法(),那么你的方法需要定义成为static,即 public static double area();
*但是 area()中使用了radius这个属性也需要定义成为 static,因为静态方法不能访问类中非静态属性和方法
*/
System.out.println("圆中心点在"+"("+p.x+","+p.y+")");
System.out.println("半径为"+c.radius);
System.out.println("圆的面积为"+c.area());}
}
* @param args
*/
static class Point{
static int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
static class Circle{
public static String x;
public static String y;
Point center=new Point(0,0);
static double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public static double area(){
return Math.PI*radius*radius;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Circle c=new Circle(7,8,9);
System.out.println("圆中心点在"+"("+Point.x+","+Point.y+")");
System.out.println("半径为"+Circle.radius);
System.out.println("圆的面积为"+Circle.area());
}
static int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle{
Point center=new Point(0,0);
static double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public static double area(){
return Math.PI*radius*radius;
}
}
public class UseClass_1 { /**
* @param args
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
Point p=new Point(7,8);
Circle c=new Circle(p.x,p.y,9);
System.out.println("圆中心点在"+"("+Point.x+","+Point.y+")");
System.out.println("半径为"+Circle.radius);
System.out.println("圆的面积为"+Circle.area());
}
}
public class UseClass_1 {
class Point{
int x,y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
}
class Circle{
Point center=new Point(0,0);
double radius=0;
public Circle(int x,int y,double r){
center.x=x;
center.y=y;
radius=r;
}
public double area(){
return Math.PI*radius*radius;
}
}
public void run(){
Point p =new Point(7,8);
Circle c=new Circle(p.x,p.y,9);
System.out.println("圆中心点在"+"("+p.x+","+p.y+")");
System.out.println("半径为"+c.radius);
System.out.println("圆的面积为"+ c.area());
}
public Point newPoint(){
return new Point(7,8);
}
public Circle newCircle(){
Point p=newPoint();
return new Circle(p.x,p.y,9);
}
public static void main(String[] args){
UseClass_1 user = new UseClass_1();
user.run();
Point p = user.newPoint();
Circle c = user.newCircle();
}
}我想纠正一下一楼的观点,内部类可以new出来,只是main方法是静态方法,而且类是UseClass_1对象的,所以必须先有UseClass_1的实例,才可以new出来。