C o caramba !! Nem C++/#.

Programação Java

Moderadores: 51, guest2003

C o caramba !! Nem C++/#.

Mensagempor fabim » 26 Jun 2013 09:11

AI AI.
Pessoar do JAVA.

Eu estou a alguns meses me batendo para entender o conceito, e não tanto a sintaxi do java.

E estou me deparando com sério problemas sobre classe.

Eu tenho uma lógica que eu uso no ANSI C, e gostaria muito de fazer o mesmo em javanes, mesmo havendo outras formas eu ainda quero fazer da forma que eu vou explicar !!

eu faço o seguinte.

Possuo uma struct ponteiro.
Dentro desta possuo N variaveis, float, int, short, char, Bit.
Eu aponto esta para um buffer da serial.

Existe a possibilidade de criar estrutura em java ?
Existe possibilidade de criar estrutura ponteiro ?

Tem tem ?

eu imagino que tipo, seja criada uma classe global ou algo parecido !!

Abraços
Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: C o caramba !! Nem C++/#.

Mensagempor KrafT » 26 Jun 2013 09:37

Que seria "C++/#"?

Postincremeta C e divide por #?

Tá, em Java na sei, mas C# pode? (C# não tá na lista).
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: C o caramba !! Nem C++/#.

Mensagempor Red Neck Guy » 26 Jun 2013 09:55

depois de passado pelo preprocessador fica c++/"."
Acho que mesmo assim, não compila não.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: C o caramba !! Nem C++/#.

Mensagempor fabim » 26 Jun 2013 09:55

KrafT escreveu:Que seria "C++/#"?

Postincremeta C e divide por #?

Tá, em Java na sei, mas C# pode? (C# não tá na lista).


Um amigo meu começou a me dar uma ajuda para eu aprender a falar javanes !!
Eu conheço um pouco de C++, e ja vi C#.
Mais não vejo tanta semelhança no contexto geral não !! Alguns topicos apenas !!

Classe, metodo e atributo sim !!! Claro pô é objeto !! Casseta !!

Mais não consigo entender exatamente algumas coisas.

Look at this !!


java code
package tiexpert;

public class Eletrodomestico {
private boolean ligado;
private int voltagem;
private int consumo;

public Eletrodomestico(boolean ligado, int voltagem, int consumo) {
this.ligado = ligado;
this.voltagem = voltagem;
this.consumo = consumo;
}
// (...)
}

package tiexpert;

public class TV extends Eletrodomestico {
private int canal;
private int volume;
private int tamanho;

public TV(int voltagem, int consumo, int canal, int volume, int tamanho) {
super(false, voltagem, consumo);
this.canal = canal;
this.volume = volume;
this.tamanho = tamanho;
}
//(...)
}


package tiexpert;

public class ExemploHeranca {
public static void mostrarCaracteristicas(TV obj) {
System.out.print("Esta TV tem as seguintes características:\n"
+ "Tamanho: " + obj.getTamanho() + "\"\n"
+ "Voltagem Atual: "+ obj.getVoltagem() + "V\n"
+ "Consumo/h: " + obj.getConsumo() + "W\n");
if (obj.isLigado()) {
System.out.println("Ligado: Sim\n"
+ "Canal: " + obj.getCanal() + "\n"
+ "Volume: " + obj.getVolume()+"\n");
} else {
System.out.println("Ligado: Não\n");
}
}

public static void main(String args[]) {
TV tv1 = new TV(110, 95, 0, 0, 21);
TV tv2 = new TV(220, 127, 0, 0, 29);
tv2.setLigado(true);
tv2.setCanal(3);
tv2.setVolume(25);
mostrarCaracteristicas(tv1);
mostrarCaracteristicas(tv2);
}
}


O código acima irá mostrar o seguinte resultado:

Esta TV tem as seguintes características:
Tamanho: 21"
Voltagem Atual: 110V
Consumo/h: 95W
Ligado: Não

Esta TV tem as seguintes características:
Tamanho: 29"
Voltagem Atual: 220V
Consumo/h: 127W
Ligado: Sim
Canal: 3
Volume: 25

System.out.print("Esta TV tem as seguintes características:\n" + "Tamanho: " + obj.getTamanho() + "\"\n" + "Voltagem Atual: "+ obj.getVoltagem() + "V\n" + "Consumo/h: " + obj.getConsumo() + "W\n");

veja que , system out OK
Que vai escrever OK
agora.

obj.getVoltagem()

Que sintaxi louca é esta, eu não vi isso em lugar algum!!

to apanhando feito louco !!
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: C o caramba !! Nem C++/#.

Mensagempor Red Neck Guy » 26 Jun 2013 10:01

Eu desisti do C# mas não do dotnet. Estou utilizando c++ gerenciado nos novos projetos. O legal é que dá pra mesclar código não gerenciado com gerenciado e aí codificando as coisas corretamente - fazendo o desacoplamento da plataforma - posso utilizar os mesmos fontes que utilizo com os mcus nas aplicações para computador.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: C o caramba !! Nem C++/#.

Mensagempor tcpipchip » 26 Jun 2013 10:37

Vais apanhar mais ainda quando estudar linguagens declarativas e linguagens de pilha, como exemplo PROLOG e FORTH.

Mas, qual a duvida do código acima ?

acredito que a primeira duvida é pq "Eletrodomestico" se repete...o primeiro é a declaracao da classe e o segundo é metodo construtor, que atribui valores para os atributos da classe quando voce instancia um objeto desta classe (new)

Java é loucura, eu programei 31 anos estruturado...ao ver JAVA...ihhh...foi dificil....mas....estou enferrujado...

Eu fiz alguns programas em JAVA PIC...


TCPIPCHIP
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: C o caramba !! Nem C++/#.

Mensagempor tcpipchip » 26 Jun 2013 11:38

Fabim, desiste do JAVA. Não ponha em risco os equipamentos de apoio à vida. :twisted:

Anexo comentários

Código: Selecionar todos
//classe base que define as caracteristicas básicas de um objeto eletrodoméstico
public class Eletrodomestico {

    /* Atributos da classe (atributos devem ser visíveis somente dentro da
     * própria classe (na maioria das vezes), por isso são declaradas com
     * visibilidade private)*/
    //a semântica da declaração é: visibilidade + tipo + nome do atributo
    private boolean ligado;
    private int voltagem;
    private int consumo;

    /* Metodo construtor (O metodo contrutor deve possuir o mesmo nome da classe,
     * podendo ou não ter argumentos(parametro) na sua assinatura)
     * abaixo o construtor com tres argumentos(ligado, voltagem, consumo)
     */
    public Eletrodomestico(boolean ligado, int voltagem, int consumo) {
        /* Operador this.nome_variavel é para indicar que se trata
         * de um atributo desta classe.
         */
        this.ligado = ligado;       //operação de atribuição
        this.voltagem = voltagem;   //operação de atribuição   
        this.consumo = consumo;     //operação de atribuição
    }

    /*
     * METODOS ACESSORES (GETTER'S and SETTER'S) - São metodos que manipulam os
     * atributos desta classe, realizam atribuição e tornam possivel que valores
     * dos atributos sejam visualizados por outros objetos. Metodos que iniciam
     * com set realizam atribuição, metodos que iniciam com get retornam o valor
     * do respectivo atributo.
     */
   
    //a assinatura do metodo consiste: visibilidade + retorno + nome+ parametro(se houver)
    public boolean isLigado() {//retorna o estado(valor) do atributo ligado
        return ligado;
    }

    //a assinatura do metodo consiste: visibilidade + retorno + nome+ parametro(se houver)
    //void indica que o metodo não possui retorno
    public void setLigado(boolean ligado) {//atribui um valor ao atributo ligado
        this.ligado = ligado;
    }

    public int getVoltagem() {
        return voltagem;
    }

    public void setVoltagem(int voltagem) {
        this.voltagem = voltagem;
    }

    public int getConsumo() {
        return consumo;
    }

    public void setConsumo(int consumo) {
        this.consumo = consumo;
    }
   
}//fim class


Código: Selecionar todos
/**
 * Essa classe apenas demonstra a o recurso de herança.
 * A Herança é um relação de é um, ou seja uma tv é um eletrodomestico
 */
public class ExemploHeranca {

    /*
     * Esse metodo recebe um objeto do tipo TV e printa na console as suas
     * caracteristicas, lembrando que uma TV é um Eletrodomestico, os metodos
     * da classe Eletrodomestico também estarão acessiveis a partir do objeto TV.
     * Sendo possivel ver saber se a tv esta ligada, qual a sua tensão.
     */
    public static void mostrarCaracteristicas(TV obj) {
        System.out.print("Esta TV tem as seguintes características:\n"
                + "Tamanho: " + obj.getTamanho() + "\"\n"
                + "Voltagem Atual: " + obj.getVoltagem() + "V\n"
                + "Consumo/h: " + obj.getConsumo() + "W\n");
        if (obj.isLigado()) {
            System.out.println("Ligado: Sim\n"
                    + "Canal: " + obj.getCanal() + "\n"
                    + "Volume: " + obj.getVolume() + "\n");
        } else {
            System.out.println("Ligado: Não\n");
        }//fim else 
    }

    public static void main(String args[]) {
        TV tv1 = new TV(110, 95, 0, 0, 21); //instancia um novo objeto da classe TV
        TV tv2 = new TV(220, 127, 0, 0, 29);//instancia um novo objeto da classe TV
        tv2.setLigado(true);//atribui um valor ao atributo ligado do objeto tv2
        tv2.setCanal(3);    //atribui um valor ao atributo canal do objeto tv2
        tv2.setVolume(25);  //atribui um valor ao atributo volume do objeto tv2
        mostrarCaracteristicas(tv1);//exibe na console as caracteristicas do objeto tv1
        mostrarCaracteristicas(tv2);//exibe na console as caracteristicas do objeto tv2
    }
}


Código: Selecionar todos
/*
 * A classe TV define as caracteristicas desses objetos, mas herdam as
 * caracteristicas da classe eletrodomestico, assim uma tv possui todas as
 * caracteristicas de um eletrodomestico mais as caracteristicas de uma tv
 *
 * A herança é indicada pela utilizaçao da palavra reservada extends na
 * assinatura do metodo seguida da classe que sera herdada
 */

public class TV extends Eletrodomestico {

    //atributos da classe tv
    private int canal;
    private int volume;
    private int tamanho;

    //metodo construtor
    public TV(int voltagem, int consumo, int canal, int volume, int tamanho) {
        /*
         * O metodo super() chama o construtor da classe mãe desta classe, neste
         * caso a classe Eletrodomestico, e nele são passados os parametros
         * necessarios no construtor da classe eletrodomesticos.
         * Caso não se chame o metodo super(), o ambiente informara um erro.
         */
        super(false, voltagem, consumo);
        this.canal = canal;     
        this.volume = volume;
        this.tamanho = tamanho;
    }

    //METODOS ACESSORES
    public int getCanal() {
        return canal;
    }

    public void setCanal(int canal) {
        this.canal = canal;
    }

    public int getVolume() {
        return volume;
    }

    public void setVolume(int volume) {
        this.volume = volume;
    }

    public int getTamanho() {
        return tamanho;
    }

    public void setTamanho(int tamanho) {
        this.tamanho = tamanho;
    }
   
}//fim class
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: C o caramba !! Nem C++/#.

Mensagempor KrafT » 26 Jun 2013 11:44

tcpipchip escreveu:Fabim, desiste do JAVA.



Meu, que heresia...

=======================

Eu havia entendido que o Fabim queria criar uma stream de uma estrutura...
Boa explicação, TCP. Meu filho quer aprender Java, vou passar isso para ele. Se ele continuar com o interesse, é mais um caso perdido.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Re: C o caramba !! Nem C++/#.

Mensagempor fabim » 26 Jun 2013 12:17

Então psual.
JAVA é para ANDROID !!

para os equipos é tudo ANSI C E ASM !!

look.
TOC TOC !!
QUEM BATE ?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
É o java !!!

Só quero entender alguns detalhes o tal do get e set, e estrutura.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: C o caramba !! Nem C++/#.

Mensagempor Red Neck Guy » 26 Jun 2013 12:23

KrafT escreveu:
tcpipchip escreveu:Fabim, desiste do JAVA.



Meu, que heresia...

=======================

Eu havia entendido que o Fabim queria criar uma stream de uma estrutura...
Boa explicação, TCP. Meu filho quer aprender Java, vou passar isso para ele. Se ele continuar com o interesse, é mais um caso perdido.



Vocês sabiam que é o TCP que nivela a quantidade de programadores Java aqui na região? O piazada morre de medo da disciplina dele e saí correndo do curso quando ele começa a mostrar o lado obscuro da computação.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: C o caramba !! Nem C++/#.

Mensagempor andre_luis » 26 Jun 2013 12:30

KrafT escreveu:
tcpipchip escreveu:Fabim, desiste do JAVA.


Meu, que heresia...


Fabim,

Quanto á criação de ponteiros no JAVA, não sou especialista para dizer que não dá, mas sei que é fortemente não-recomendado.
E a minha opinião de programador de uC em baixo nível ( C e ASM ), é que é uma ferramenta muito interessante para trabalhos rápidos.

Um fórum brasileiro voltado para essa área que já me ajudou algumas vezes é o GUJ e lá só tem animal nessa área.
Inclusive, tem uma pergunta exatamente igual á sua : struct em Java???


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: C o caramba !! Nem C++/#.

Mensagempor Red Neck Guy » 26 Jun 2013 12:32

O erro aqui é tentar já sair fazendo as coisas sem entender os conceitos. O interessante seria inicialmente estudar orientação a objetos, depois ir evoluindo aos poucos. Mas sei lá, tem gente que gosta de abrir no último capítulo já ir vendo um exemplo com herança, polimorfismo, templates e reflexão. Aí não tem como não...
Embora no final das contas não seja difícil, são muitos conceitos novos para ser vistos numa tacada só.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: C o caramba !! Nem C++/#.

Mensagempor tcpipchip » 26 Jun 2013 12:34

Aquino, o certo mesmo é começar com ANALISE ORIENTADA A OBJETOS, estou certo ?
------------------------------------------
http://www.youtube.com/tcpipchip
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Re: C o caramba !! Nem C++/#.

Mensagempor fabim » 26 Jun 2013 12:34

poisé Andre.
Vou ter que fazer algo idiota mesmo, e perder um **** tempo de processo para ficar alocando dados do buffer cada um no seu quadrado !! KIPARRRIU !!
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: C o caramba !! Nem C++/#.

Mensagempor Red Neck Guy » 26 Jun 2013 12:48

tcpipchip escreveu:Aquino, o certo mesmo é começar com ANALISE ORIENTADA A OBJETOS, estou certo ?


Certíssimo.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Próximo

Voltar para Java

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x