[quote=@GalaxyRaider] Time for Please Help Me Find Out What's Wrong With My Code Because It Is Killing Me 2! If you don't mind it. I'm mainly concerned with Shape and Rectangle right now. If I get those, I'll be fine. I get no errors when running this, but my values for the Area and Perimeter are always 0.0 no matter what I do. [hider=Shape(dot)java] import java.util.Scanner; public class Shape { public static String name = "Unknown"; public static double Area = 0; public static double Perimeter = 0; public static void methodName() { System.out.println("Name of Shape: " + name); System.out.println("Area of Shape: " + Area); System.out.println("Perimeter of Shape: " + Perimeter); } public static void main(String[] args) { double length = 0; double width = 0; System.out.println("Greetings! Please enter 1 for Rectangle, 2 for Square, and 3 for Circle: "); Scanner in = new Scanner(System.in); int userInput = in.nextInt(); if(userInput == 1) { System.out.println("Enter length: "); Rectangle em = new Rectangle(length, width); Rectangle dm = new Rectangle(); Rectangle.calculateArea(); } else if(userInput == 2) { Rectangle dm = new Rectangle(); Square dm1 = new Square(Area); } else if(userInput == 3) { Circle dm = new Circle(); } } private static void getMethodName() { // TODO Auto-generated method stub } } [/hider] [hider=Rectangle(dot)java] import java.util.Scanner; public class Rectangle extends Shape { Scanner in = new Scanner(System.in); public static double length; public static double width; public Rectangle() { name = "Rectangle"; length = 0; width = 0; System.out.println("Name of Shape: " + name); } public Rectangle(double length, double width) { double tempLength = in.nextInt(); System.out.println("Enter width: "); double tempWidth = in.nextInt(); length = tempLength; width = tempWidth; this.calculateArea(); this.calculatePerimeter(); } public static void calculateArea() { Area = length*width; System.out.println("Area of Shape: " + Area); } public static void calculatePerimeter() { Perimeter = (2*length) + (2*width); System.out.println("Perimeter of Shape: " + Perimeter); } } [/hider] [hider=Circle(dot)java] public class Circle extends Shape { public static double radius; static double pi = 3.141592; public Circle() { name = "Circle"; radius = 0; } public Circle(double radius) { radius = in.nextInt(); } public static void calculateArea() { Area = pi*radius*radius; } public static void calculatePerimeter() { Perimeter = 2*pi*radius; } } [/hider] [hider=Square(dot)java] public class Square extends Rectangle { public static double sideLength; public Square(double sideLength) { sideLength = in.nextInt(); length = sideLength; width = sideLength; } } [/hider] [/quote] Well for one, you might be better off getting the length and width in the same place. Secondly, this might be a different thing with java than I learned, but personally I'd put "width * 2" and "length * 2" instead of "2*width" and "2*length". Not really a problem per say unless java has a hard time with the way you put it. Third, you're defining length and width as 0. Instead of "templength" and "tempwidth" I'd suggest creating new variables and pulling those instead of trying to apply them back to length and width. Fourth, it could be an issue of order. Having Rectangle(double length, double width) after defining them as zero could be the problem. Again, I suggest new variables entirely than ones you've already used. But since I'm not much for Java I bet none of this is applicable.