Pq nao compila?

[code]package cap1.cliente;

import cap1.Carros.Moto;

public class Honda extends Moto{

public static void main(String[] args) {
}

}[/code]

package cap1.Carros; abstract class Moto { int z=10; }

Pq nao compila?

Honda.java:3: package cap1.Carros does not exist
import cap1.Carros.Moto;
^
Honda.java:5: cannot find symbol
symbol: class Moto
public class Honda extends Moto{
^
2 errors

olá,

Pq estão em pacotes distintos …e a classe Moto está com o modo de acesso padrão, isso quer dizer q somente as classes dentro do pacote dela q a enxergam !!!

Se vc colocar public na classe Moto vai dar certo !!!

Ricardo

Nao funcionou…

[code]package cap1.Carros;

public abstract class Moto {

int z=10;

}[/code]

Honda.java:3: package cap1.Carros does not exist
import cap1.Carros.Moto;
^
Honda.java:5: cannot find symbol
symbol: class Moto
public class Honda extends Moto{
^
2 errors

Existe essa pasta “Carros” ao qual a classe Moto está inserida ??

Pq pelo jeito ele naum ta achando essas pastas cap1 e Carro

Ricardo

crie outro projeto e copie as classes para ele, deve funcionar.

Vc ta usando alguma IDE ou fazendo na mão (os pacotes) ???

Ricardo

  • cap1
    ------ Carros
    ------------ Moto.java

------ cliente
------------- Honda.java

Para compilar entro nos diretórios… nao é isso?

[edit] Fazendo na mão… criei a estrutura no desktop…

Abraços

Grande fiz uma simulação e varias formas e funcionaram do jeito que esta ai…
Tenta refazer os pacotes e as classes!!

Valeu

Vai somente na classe que possui o main() …entre no diretório da classe e compile somente ela !! Automaticamente ela irá encontrar as dependências (outras classes !!)

Ricardo

C:\Documents and Settings\guilherme\Desktop\cap1\cliente>javac Honda.java

Honda.java:3: package cap1.Carros does not exist
import cap1.Carros.Moto;
^
Honda.java:5: cannot find symbol
symbol: class Moto
public class Honda extends Moto{
^
2 errors

olá

entaum tenta rodar o javac na classe Honda.java no diretório Desktop !!!

/Editando/
Fora do pacote cap1.cliente

Ricardo

Mesma coisa… sei lá o q é…

obrigado

esses pacotes com primeira letra maiúscula tá bonito, tentou alterar tudo pra minusculo?
e tenta ver questões de classpath também…

Eu fiz o seu exemplo aki !!!

E funcionou somente compilando fora dos pacotes…exemplo:

javac cap1/cliente/Honda.java

é bem estranho …se vc ta interessado em certificação …pega uma IDE e faz esses exemplos…a IDE toma conta de tudo isso pra vc !!!
Embora assim vc vai ter q lidar com outros problemas (como esse !!)

Ricardo

Pega um IDE (Eclipse) qualquer do mercado e trabalha encima, se você esta estudando para a certificação isso ocupa muito tempo, esse tempo que você deveria esta assimilando coisas mais abrangentes. se você esta estudando pelo livro da KS, este assunto esta bem explicado no ultimo capitulo do livro, até la você não vai precisar se aprofundar nisso não.

TIVE O MESMO PROBLEMA VAI AI A MINHA SOLUÇÃO

ESTRUTURA

–projeto
-----pacote1
----------classe1.java
-----pacote2
----------classe2.java

vamos dizer que você tem a classe 1 que depende da classe 2 como abaixo

package pacote2 public class classe2

package pacote1 import pacote2.*; public class classe1

para compilar via terminal no WINDOWS, você deve estar na raiz do projeto
no caso

[code]cd\

cd c:[caminho]\projeto
estando na pasta do projeto

c:\projeto>javac -cp . pacote2/classe2.java ( aqui a classe2 que nao possui dependencia é compilada )
c:\projeto>javac -cp . pacote1/classe1.java ( aqui a classe1, primeiro compilamos a classe2 pois a 1 depende dela )[/code]

para testar basta digitar

Bom, espero ter ajudado…