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
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 !!!
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
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 !!)
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
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 !!)
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.
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]