一个简单的构造器问题 有代码就是不能运行

我现在有两个代码,几乎一摸一样,但是一个能用一个报错,看的我眼都绿了,文本比较器也用了,可还是不知道怎么会这样
[code="java"]public class Builderpattern{
private final int a;
private final int b;
private final int c;
private final int d;
private final int e;
private final int f;
public static class Builder{
private final int a;
private final int b;

            private int c=0;
            private int d=0;
            private int e=0;
            private int f=0;
            public Builder(int a,int b){
                this.a=a;
                this.b=b;       
            }
            public Builder c(int val)
            {c=val; return this;}
            public Builder d(int val)
            {d=val;return this;}
            public Builder e(int val)
            {e=val;return this;}
            public Builder f(int val)
            {f=val;return this;}

            public Builderpattern build(){
                return new Builderpattern(this);
            }
        }

        private Builderpattern(Builder builder){
            a=builder.a;
            b=builder.b;
            c=builder.c;
            d=builder.d;
            e=builder.e;
            f=builder.f;

        }
        public static void main(String[] args) {
            Builderpattern cc=new Builderpattern.Builder(240,8).c(100).d(35).e(45).build();
        }

}
[/code]这个能直接用
[code="java"]public class Nutrition {
private final int a;
private final int b;
private final int c;
private final int d;
private final int e;
private final int f;
public static class Builder {
private final int a;
private final int b;

    private int c=0;
    private int d=0;
    private int e=0;
    private int f=0;
        public Builder(int a,int b){
        this.a=a;
        this.b=b;       
    }
    public Builder c(int var) 
    {c = var; return this;}
    public Builder d(int var) 
    {d = var; return this;}
    public Builder e(int var) 
    {e = var; return this;}
    public Builder f(int var) 
    {f = var; return this;}

    public Nutrition build() {
        return new Nutrition(this);
    }
}

private Nutrition(Builder builder) {
     a = builder.b;
     b = builder.b;
     c = builder.c;
     d = builder.d;
     e = builder.e;
     f = builder.f;
}
public static void main(String[] args) {
    Nutrition n = Nutrition.Builder(100,200).d(230).e(120).build(); 
}

}
[/code]这个就不行,两个代码几乎一样,可是第二个代码的main报错,期待答复

[quote]Nutrition n = Nutrition.Builder(100,200).d(230).e(120).build();[/quote]

少了个new。。。

[code="java"]Nutrition n = new Nutrition.Builder(100, 200).d(230).e(120).build();[/code]

[code="java"]
Nutrition n =new Nutrition.Builder(100,200).d(230).e(120).build();
[/code]

改成这样