Q:

Creating methods to change multiple field objects

Hey guys I'm having some trouble working on an assignment for class (... again) and was wondering you guys could give me a little bit of input that might be able to help me figure this out. We're working on an assignment to create a house through shapes and we need to create methods to change the shapes (parts of the house) and no matter what I've tried I can't figure out how to get the shapes to actually change via the created methods. 
This is the first step of the assignment with the next steps being more of the same for the other fields.

Add to the House class a method named changeRoofColor that has a String parameter variable and changes the color of roof according to the argument passed in the parameter. (Use changeColor , not setColor .)

Here's what I've got so far, the lines you see in [ ] are thing's I've tried that haven't worked for me. 
 /**
 * Write a description of class House here.
 * 
 * @author Nicholas Thomas
 * @version 2/13/2018
 */
public class House
{
    private Square wall; 
    private Square window;
    private Triangle roof;
    /** Making a house.
     * House Constructor
     *
     */
    public House()
    {
        wall = new Square();        
        roof = new Triangle();
        window = new Square();
        wall.makeVisible();
        wall.changeSize(100);
        wall.moveHorizontal(40);
        wall.moveVertical(150);
        roof.makeVisible();
        roof.moveHorizontal(100);
        roof.changeSize(60, 150);
        roof.moveVertical(125);
        roof.changeColor("black");
        window.makeVisible();
        window.changeSize(25);
        window.moveHorizontal(50);
        window.moveVertical(170);
        window.changeColor("blue");
    }

    /** Contains the main method.
     * Method main
     *
     * @param args A parameter
     */
    public static void main(String[]args)
    {
        House house = new House();
    }

    /** This is a method to change the color of the roof. 
     * Method changeRoofColor
     *
     * @param roofColor
     */

    public void changeRoofColor(String roof)
    {
        [changeRoofColor();]
        [changeRoofColor("green");]
    }

    /**
     * Method changeWallColor
     *
     * @param wall A parameter
     */
    public void changeWallColor(String wall)
    {
       [house.changeWallColor();]
        [this.changeWallColor();]
    }

    /**.
     * Method changeWindowColor
     *
     * @param window A parameter
     */
    public void changeWindowColor(String window)
    {

    }

    /**.
     * Method moveHorizontal
     *
     */
    public void moveHorizontal(int Hotizontal)
    {

    }

    /**.
     * Method moveVertical
     *
     */
    public void moveVertical(int Vertical)
    {

    }

    /**.
     * Method makeInvisible
     *
     */
    public void makeInvisible()
    {

    }

    /**.
     * Method makeVisible
     *
     */
    public void makeVisible()
    {

    }
}

I'd appreciate any advice you guys may have, I understand some of you are uncomfortable with helping with homework related questions, but I want to be clear and say I'm not looking for the complete solution just some help figuring out what I'm doing wrong and where to go from here. 
Thank you for taking the time to read this and giving me any advice. 

A:

You seem confused on how to call methods and pass in parameters.
The method 
public void changeRoofColor(String roof)
{
    [changeRoofColor();]
    [changeRoofColor("green");]
}

should look like this:
 public void changeRoofColor(String color)
 {
     roof.changeColor(color);
 }

because the parameter is here to accept a color not a roof. and since you want to change the roof color, you need to use the roof variable to call the changeColor method.
and the same concept applies for all your other methods.

