Java 如何将变量从一个类移动到另一个类

Java 如何将变量从一个类移动到另一个类,java,string,Java,String,对于java类中的最后一个项目,我们可以做任何事情。我正在制作一个面部创造者,我想知道我该如何制作它,以便问题类的字符串可以移动到绘图类。这是我能做到的,所以我可以做,如果字符串是。。。然后画 public class FinalProjectQuestions { public static void main(String []args) { Scanner in = new Scanner(System.in); System.out.pr

对于java类中的最后一个项目,我们可以做任何事情。我正在制作一个面部创造者,我想知道我该如何制作它,以便问题类的字符串可以移动到绘图类。这是我能做到的,所以我可以做,如果字符串是。。。然后画

public class FinalProjectQuestions
{
    public static void main(String []args)
    {
        Scanner in = new Scanner(System.in);

        System.out.println("We will design the stick face of your dreams");

        System.out.print("Choose gender M for Male, or F for Female: ");

        String gender = in.next();

        String hair = "";
        String haircolor = "";
        String eyecolor = "";
        String eyesize = "";
        String mouthsize = "";
        String m = "m";
        String m2 = "M";
        String femalehair = "";
        String femalehaircolor = "";
        String femaleeyecolor = "";
        String femaleeyesize = "";
        String femalemouthsize = "";
        String femalemakeup = "";
        if (gender.equals(m) || gender == "M")
        {
            System.out.print("Hair Length, Short, Mediuem, or Long: ");
            hair = in.next();
            System.out.print("Hair Color, Red, Brown, Blond, Blue, Black, or Purple: ");
            haircolor = in.next();
            System.out.print("Eye Color, Blue, Red, Brown, or Black: ");
            eyecolor = in.next();
            System.out.print("Eye size, Big, Small, or Mediuem: ");
            eyesize = in.next();
            System.out.print("Mouth Size, Big, Small, or Mediem: ");
            mouthsize = in.next();
        }

        else
        {
            System.out.print("Hair Length, Short, Mediuem, or Long: ");
            femalehair = in.next();
            System.out.print("Hair Color, Red, Brown, Blond, Blue, Black, or Purple: ");
            femalehaircolor = in.next();
            System.out.print("Eye Color, Blue, Red, Brown, or Black: ");
            femaleeyecolor = in.next();
            System.out.print("Eye size, Big, Small, or Mediuem: ");
            femaleeyesize = in.next();
            System.out.print("Mouth Size, Big, Small, or Mediem: ");
            femalemouthsize = in.next();
            System.out.print("MakeUp, None, Little, Average, or Tons: ");
            femalemakeup = in.next();
        }
    }
}


public class FinalProjectMale 
{
    public void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;

        Ellipse2D.Double faceshape = new Ellipse2D.Double(100,100,100,100);

        g2.draw(faceshape);
    }
}

要传递给新类的参数很多,但是有一些技巧可以做到这一点。您可以创建一个具有所有这些属性的Face类。最佳做法是创建面对象。然后,Face对象可以作为参数传递给Draw类,或者Face类可以有一个允许它自己绘制的函数。

只需这样做:这里我只向您展示如何封装数据并将其传递给其他类以供进一步使用。希望这能帮助您了解如何编写代码

创建一个person类

public class Person {
    private String hair;
    private String hairColor;
    private String eyeColor;
    private int eyeSize;
    private int mouthSize;
    private Gender gender = Gender.MALE; // default is male
    private String makeup;

    public String getHair() {
        return hair;
    }

    public void setHair(String hair) {
        this.hair = hair;
    }

    public String getHairColor() {
        return hairColor;
    }

    public void setHairColor(String hairColor) {
        this.hairColor = hairColor;
    }

    public String getEyeColor() {
        return eyeColor;
    }

    public void setEyeColor(String eyeColor) {
        this.eyeColor = eyeColor;
    }

    public int getEyeSize() {
        return eyeSize;
    }

    public void setEyeSize(int eyeSize) {
        this.eyeSize = eyeSize;
    }

    public int getMouthSize() {
        return mouthSize;
    }

    public void setMouthSize(int mouthSize) {
        this.mouthSize = mouthSize;
    }

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) {
        this.gender = gender;
    }

    public String getMakeup() {
        return makeup;
    }

    public void setMakeup(String makeup) {
        this.makeup = makeup;
    }

    public enum Gender {
        MALE, FEMALE
    }
}
和其他类

class OtherClass {

    private Person person;

    public OtherClass(Person person) {
        this.person = person;
        if (person.getGender() == Person.Gender.FEMALE) {

        }
    }
}
使用方法:

public static void main(String[] args) {
    Person male = new Person();
    male.setHair("HairColor");
    ...
    Person female = new Person();
    female.setHair("HairColor");
    ...

    // and pass it to the other class
    OtherClass otherClass = new OtherClass(male);
}

draw类在哪里?实际上,最好的方法是创建一个泛型
Person
类,将所有变量放入其中,然后为所有变量创建set方法。在此之后,您可以创建两个类
Male
Female
,并从
Person
类进行扩展。切勿在
gender==“M”
处与
=
进行字符串比较,您可以在if语句中使用
gender.equalsIgnoreCase(“M”)