2016-09-15 2 views
1

Я делаю очень простой учебник по системам ArrayList/Particle. Я продолжаю получать «конструктор - неопределенная ошибка», и я не могу понять, почему. Googling поднимает много более сложных вопросов/ответов. Что мне не хватает? Это изменилось в прошлом году?Конструктор не определен [Обработка]

ArrayList<Particle> plist; 

void setup(){ 
    size(640, 360); 
    plist = new ArrayList<Particle>(); 
    println(plist); 
    plist.add(new Particle()); 
} 

void draw(){ 
    background(255); 


} 


class Particle { 
    PVector location; 
    PVector velocity; 
    PVector acceleration; 
    float lifespan; 

    Particle(PVector l){ 
    // For demonstration purposes we assign the Particle an initial velocity and constant acceleration. 
    acceleration = new PVector(0,0.05); 
    velocity = new PVector(random(-1,1),random(-2,0)); 
    location = l.get(); 
    lifespan = 255; 
    } 

    void run(){ 
    update(); 
    display(); 
    } 

    void update(){ 
    velocity.add(acceleration); 
    location.add(velocity); 
    lifespan -= 2.0; 
    } 

    void display(){ 
    stroke(0, lifespan); 
    fill(175, lifespan); 
    ellipse(location.x, location.y,8,8); 
    } 

    boolean isDead(){ 
    if(lifespan < 0.0){ 
     return true; 
    }else{ 
     return false; 
    } 
    } 
} 

ответ

2

Это ваш Particle конструктор:

Particle(PVector l){ 

Обратите внимание, что он принимает PVector аргумент.

Это, как вы звоните в Particle конструктор:

plist.add(new Particle()); 

Эта строка содержит ошибку: the constructor частиц() does not exist. И это именно то, что ваша проблема. Конструктор Particle() не существует. Только Particle(PVector) существует.

Иными словами, обратите внимание, что вы не даете ему аргумент PVector. Это то, о чем вам говорит ваша ошибка.

Чтобы исправить это, вам либо необходимо предоставить аргумент PVector, либо вам нужно изменить конструктор, чтобы он больше не нуждался в нем.

+0

Ahh ok. Конструкторы и классы новы для меня, поэтому я это испортил. Ошибка исчезла. Я немного поработаю над конструкторами. –

+0

@mishap_n Когда дело доходит до параметров, конструкторы очень похожи на функции. Вы получите аналогичную ошибку, если попытаетесь вызвать функцию 'ellipse()' без каких-либо параметров. –

Смежные вопросы