estou compilando um programa meu e esta com os seguintes erros:
1-client/clientHP: cannot resolve symbol
symbol: class N_Operations
Location: class ClienteHP
N_Operations c_obj;
2- client/clientHP: cannot resolve symbol
symbol: class N_Operations
Location: class ClienteHP
c_obj=new N_Operations();
public class ClientHP extends UnicastRemoteObject implements RMI {
public ClientHP() throws RemoteException
{
super();
}
public void initHP(){
N_Operations c_obj;
c_obj = new N_Operations();
c_obj.c_initHP();
}
o que estou fazendo de errado?
De onde vem esta classe N_Operations?
Vc a importou?
Vc que criou a classe N_Operations? ou vem de algum pacote que vc abaixou da net?
a classe foi criada e nao tirada da net e a classe nao foi importada:
public class N_Operations{
public native void c_initHP();
public native void c_centerFreq(String freq);
public native void c_startFreq(String freq);
public native void c_stopFreq(String freq);
public native void c_on();
public native void c_next();
static{
try {
System.loadLibrary("jni");
System.out.println("Carregou biblioteca");
}
catch(UnsatisfiedLinkError e) {
System.out.println(e.getMessage());
}
}
}
Primeiramente: sua classe tem métodos abstratos, por isso: public native void c_centerFreq(String freq);. Mas tem alguns erros. O primeiro é que quando vc define um método abstrato, vc não pode usar native, isso dará um erro de compilação. E seu método deve ser explicitamente definido como abstract. Como vc irá ter métodos abstratos, sua classe tb deve ser definida como abstract.
Agora quanto a importação, se a classe N_Operations estiver no mesmo pacote não é preciso importar, mas se não tiver será necessário…
E outra coisa… vc não poderá instânciar N_Operations, pois ela é abstrata (dará erro na outra classe).
blz? 
ok, cfme abaixo ja arrumei o problema da class abstract=
public abstract class N_Operations{
public abstract void c_HPgeneric(String str);
public abstract void c_initHP();
public abstract void c_centerFreq(String freq);
public abstract void c_startFreq(String freq);
public abstract void c_stopFreq(String freq);
public abstract void c_on();
public abstract void c_next();
mas agora, se eu nao posso instanciar N_Operations como eu acesso oo metodos da classe N_Operations?
Antes eu tinha assim:
public void initHP(){
System.out.println("estou em zoom , ClientHP");
N_Operations c_obj;
c_obj = new N_Operations();
c_obj.c_initHP();
}
como faço agora?
Vc terá que criar uma outra classe que estenda N_Operations e implemente todos ou partes dos métodos abstratos, mas para vc instânciar a classe, terá que ter uma classe concreta (que não seja abstrata) que É UM N_Operations.
Blz?
quer dizer que eu terei uma classe abstrata N_Operations e outra classe, por ex.:
public class ClientHP extends N_Operations{
…
e ainda outra classe onde eu terei meu metodos implementados da classe abstrata e que sao chamados na classe ClienteHP?
é isso?
não é isso, hehehe, primeiro: vc pode implementar teus métodos na classe abstrata, mas pra instanciar e usar esses métodos, precisa ter uma classe concreta… por ex, é valido fazer:
[code]public abstract class X {
public void m() { System.out.print( “eu amo o portal” ); }
}
class Y extends X {
public static void main( String args[] )
{
X x = new Y();
x.m();
}
}
[/code]
como tb é valido fazer (como o javateco disse):
[code]public abstract class X {
public void m()
}
class Y extends X {
public void m() { System.out.print( “eu amo o portal” ); }
public static void main( String args[] )
{
X x = new Y();
x.m();
}
}
[/code]
tu só tem 2 classes, a abstrata, e a concreta e implementa a abstrata…