Olá gente, sou programador de PHP e senti a necessidade de uma linguagem mais articulada, que eu possa desenvolver softwares e sites.
No momento estou tentando fazer meu primeiro programa OOP e estou com duvidas com relação se a extrutura das classes esta correto… se o main esta legal ou tá puxando muito pra programaçao não-oop
preciso de dicas e tudo q vier
o programa é simples… é o hello_db
eu criei a classe bd q tem o metodo para se conectar no banco de dados(porenquanto só tem esse) e com um extensao de classe TECLADO que irá trabalhar com o Stream para preenxer os campos da super classe
deem suas opinioes, sugestoes, criticas… plz… preciso aprender isso de verdade ! nao quero ser mais um q “tem um noçao” ou q “consegue programar”… eu to até lendo um livro escrito pelo criador do JAVA da série “Java da Source” antigao q eu redescobri… mas nao quero esperar o livro acabar para começar a treinar e nada melhor para treinar doque fazer um programa q te interessa… pra mim db interessa muito
mas sem mais delongas… aki esta o código
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.*;
class hello_db
{
public static void main(String[] args)
{
bd cigarro = new bd();
cigarro.ler(host);
cigarro.ler(user);
cigarro.ler(pass);
cigarro.ler(db);
cigarro.conecta();
}
}
class bd
{
public String host = "host";
public String user = "user";
public String pass = "pass";
public String db = "db";
private String url;
private String driver = "org.gjt.mm.mysql.Driver";
private Connection connect;
bd(){
url = "jdbc:mysql://" + host + "/" + db + "?user=" + user + "&password=" + pass;
}
private Connection conecta(){
try{
connect = DriverManager.getConnection(url)
}catch (Exception e){
System.out.println("Erro ao conectar no servidor :(");
return;
}
System.out.println("Conectou ao banco !!!!!!!")
}
class teclado extends bd
{
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
public String ler(String oque) {
System.out.println (oque +" : ");
super.oque = br.readLine();
}
};
};
só complementando
eu queria uma simples revisao… me explicar se as classes estao escritas de forma correta e se estao logicas… se a logica q eu usei é logica de OOP… to com medo de estar escrevendo JAVA com a cabeça em PHP…
tá muito bom pra um começo…
mas tente seguir algo do tipo…
public
class MinhaClasse
{
public MinhaClasse()
{
System.out.println("olá mundo");
}
public static
void main(String args[])
{
new MinhaClasse();
System.exit(0);
}
}
Bem… q ele nao vai compilar eu já imaginava… primeiro programa feito quase as cegas :lol:
O que eu vim buscar aqui é como essa minha ideia de programa ficaria escrita corretamente em JAVA
eu tenho q deixar todas as classes dentro da classe principal ?
essa parte do main poder ter em cada classe me complicou umpouco ainda mais pra quem tava começando a estudar C++ aonde só tinha um main. Qual é o “main” main() afinal ?
E extenção de classes ta correta e necessaria ?
porfavor… me ajudem a intender estas coisas q facilitariam muito o meu aprendizado
É legal ter um livro e ter um colega para perguntar. Por incrível que pareça, programação e redação são coisas muito parecidas - ajuda bastante ler coisas escritas pelos outros, e ajuda bastante ter alguém que lhe ajude. Não é todo mundo que consegue aprender tudo sozinho. (Se fosse assim, pra que haveria este fórum?)
Bom, para quem está começando, é legal organizar as coisas da seguinte maneira: para cada classe, crie um arquivo separado com o nome da classe + “.java”. (A regra na verdade é um pouco mais complicada, mas para facilitar é legal deixar cada classe separadinha).
Isso que é o legal do java, na verdade você que decide na hora de rodar o programa. Você pode reservar o “main” de uma classe que só é usada por outras classes para fazer uma rotina de teste.
[quote=“Need_Weed”]E extensão de classes tá correta e necessaria ?
por favor… me ajudem a entender estas coisas que facilitariam muito o meu aprendizado[/quote]
Outra coisa que depende do que você quer fazer. Isso na verdade aprende-se com a prática…
Ainda bem que o computador (compilador) aceita um monte de coisas e não é resmungão igual ao seu professor de redação.
Escreva bastante código, leia alguns livros, pergunte aos seus colegas, e principalmente teste o que você escreveu. De repente você descobre até um jeito melhor de fazer as coisas…
Gente… eu fiz umas alteraçoes no código… tirei classes desnecessárias porenquanto… e baseado em estruturas de outros códigos da web, que me pareceram mais simples doque as do livro, fiz uma coisa um tanto diferente mas prezervando o main com apenas uma alteraçao.
Eu pretendo trabalhar todo meu aprendizado de java nesse projeto… a cada aprendizado uma incrementacao no programa… acho mais util deixar esse metodo para ser requisitado posteriormente como porexemplo quando eu poder fazer a versao q muda de banco de dados ou simplesmente para quando eu fizer a versao que desconecta e pode conectar denovo
bem… sem mais delongas…
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.*;
class hello_db
{
public String host = "host";
public String user = "user";
public String pass = "pass";
public String db = "db";
private String url;
private String driver = "org.gjt.mm.mysql.Driver";
private Connection connect;
hello_db(){
public String host = "host";
public String user = "user";
public String pass = "pass";
public String db = "db";
private String url;
private String driver = "org.gjt.mm.mysql.Driver";
private Connection connect;
}
private Connection conecta(hello_db objeto){
objeto.url = "jdbc:mysql://" + objeto.host + "/" + objeto.db + "?user=" + objeto.user + "&password=" + objeto.pass;
try{
connect = DriverManager.getConnection(url)
}catch (Exception e){
System.out.println("Erro ao conectar no servidor :(");
return;
}
System.out.println("Conectou ao banco !!!!!!!")
}
BufferedReader kinput = new BufferedReader (new InputStreamReader(System.in));
public String ler(String oque) {
System.out.println (oque +" : ");
super.oque = kinput.readLine();
return oque;
};
};
public static void main(String[] args)
{
hello_db cigarro = new hello_db();
System.out.println("Olá, Bem Vindo ao Hello_DB. Vamos ver qual vai ser o problema que vai dar agora");
cigarro.ler(host);
cigarro.ler(user);
cigarro.ler(pass);
cigarro.ler(db);
cigarro.conecta(this);
}
}
tipo o metodo main() ele é statico sempre estara na memoria, normalmente ele executa o metodo construtor,
que é definido com o mesmo nome da classe tipo…
class x
{
public x()
{
System.out.println("mais uma vez eu tentando..");
}
public static
void main(String args[])
{
// aqui ele executa o metodo construtor..
new x();
System.exit(0);
}
um codigo um pouquinho mais complicado tente intender…
class y
{
public y()
{
String texto = "tentando mais uma vez";
escreva(texto);
}
public
void escreva(String a_texto)
{
System.out.println(a_texto);
}
public static
void main(String args[])
{
new y();
System.exit(0);
}
}
po fiel… isso nao é complicado nao
eu to procurando sources de exemplos de programas… inclusive usando swing… e to conseguindo intender quase tudo… a criação de objetos e extenções de classes… consigo ler e intender mas ainda nao estou com mobilidade para escrever tudo ainda… e fudeu tudo hj aqui quando eu fui instalar o jdk… erro na instalacao ainda bem q em breve estarei de micro novo… com muito mais ram e vou poder botar o XP ou 2000 pro e ter um desempenho melhor com um sistema com menos erros(ao menos os cds do 98 q eu tenho sao uma merda)
Bem… agora é hora de ir na livraria e procurar um livro novo heheheheheh
ainda falta aprender threads e muitas outras coisas que com exemplos puro e simplesmente nao resolve
Uma dica, como vc disse que está começando a programar em Java e não tem muito conhecimento de OOP, bem, que tal comprar um livro que trade desse assunto ?
Não sei a quantas anda seu inglês, mas um bom título seria esse: fundamentals of oop and data structures in java.
Em português, bem, não conheço quase nada, mas já ouvi falar bem do Introdução a Programação orientada a objetos usando Java.
Depois que seus conceitos em OOP estiverem a flor da pele, aí sim pode partir para a criação de programas.
Estou dando essa dica pq vc disse que quer realmente aprender Java, e, sinceramente, uma coisa (OOP) está diretamente ligada a outra (Java).