Java kesaco [JAVA] - Programmation
Marsh Posté le 22-11-2001 à 22:25:28
ou ca n importe quoi ??......si justment je cherche des infos sur HFR, c pas pour me tapper tout le site de sun en long et en travers (et en anglais)....ca viendra surment mais plutard
Marsh Posté le 22-11-2001 à 22:28:09
C'est un langage de programmation généraliste, orienté objet, qui permet, entre autres, de faire ce qu'on appelle des applets. Ce sont de petits programmes inclus dans des pages web qui s'exécutent sur le client.
Et pour ce qui est de la programmation généraliste, comme son nom l'indique, ca permet de faire de tout : du côté client, du côté serveur, de la communication client serveur, de la gestion réseau, du graphisme ou compter les poils de tete de iench si ca t'amuse mais ca j'ai jamais essayé
Sinon www.javasoft.com est effectivement un super site sur le sujet, aussi bien pour les novices que pour les développeurs acharnés (ah les discussions à bâtons rompus sur la Java Cryptography Extension )
Marsh Posté le 22-11-2001 à 22:32:21
yess, merci je commence a voir!
une petit pour la route : ca se compile ?! ca se teste en local facilement sous win? sous linux ?
Marsh Posté le 22-11-2001 à 22:44:34
Ah la question qui tue je me gausse d'avance
La réponse est : ca se compile ET ca s'interprète. Bon alors là logiquement tu fais
Bon explication : quand tu crées ton source après tu le compiles et ca crée du pseudo-code (bytecode) qui est un truc de chez Sun. Et quand le bytecode est lancé sur une machine, la machine virtuelle Java installée interprète ce bytecode afin de le traduire dans le langage de cette machine, d'où la portabilité du Java
Alors, mal à la tête
Marsh Posté le 22-11-2001 à 22:54:59
lol
non j ai capté
c est un bon compromis c vrai enfin si le code generé permet quand meme de ne pas avoir acces aux sources comprehensibles
Marsh Posté le 23-11-2001 à 08:37:15
slvn a écrit a écrit : lol non j ai capté c est un bon compromis c vrai enfin si le code generé permet quand meme de ne pas avoir acces aux sources comprehensibles |
Et non! On sait avoir accès au sources comme on veut.
Sinon, va sur bla bla pour ton topic, c'est plus approprié
Marsh Posté le 23-11-2001 à 15:30:17
Darklord > Tu es mesquin : ca concerne bien la programmation, même si ce n'est pas bourré de gros mots comme pointeur, variable et thread
Sinon il me semble bien qu'on peut sécuriser un minimum ses sources puisque je suis déjà tombé sur des .class qui ne voulaient pas se laisser décompiler et je me prenais un message de sécurité du genre : va voir ailleurs ca ne te regarde pas
Marsh Posté le 23-11-2001 à 22:11:53
c vrai qeu darklord, il se la péte avec ses ptit 850 messages (; (;
j ai rien mis sur les pointeurs, variables, threads, etc.... car a priori je connait deja du moins en c/c++ ....
je voulais juste qq infos sur le java, j ai eu les principales pour l utilisation
mias pour me lancer, je sais pas comment trouver un "pseudo compilateur" et un "interpreteur" pour les tester chez moi....
et puis il me faudrait aussi un bref tutorial, enfin si qq un a sa sous la main,
Marsh Posté le 23-11-2001 à 22:52:34
une petite question, je viens de chopper un jeu en java..un demineur
a premiere vu ca ressemble a du C++ ?!
qq question : est ce rapide ?! ( moins que le C et plus que le basic, je suppose ?!)
quand qq un utilise un applet stocké sur un serveur, il peut voir le code source de l applet qu il utilise ??
y a t il des problemens avev les navigateurs ??
Marsh Posté le 23-11-2001 à 23:25:23
Syntaxiquement, ca ressemble à du C.
Sinon il n'y a pas de pointeurs (du moins pas sous forme directe) donc avant d'aller taper n'importe ou en mémoire tu te coupes quelque chose et tu t'en fais un collier, le tout sur une jambe en chantant Aïda sans fausse note.
Point de vue rapidité ca dépend.
Et pour ce qui est d'une applet, comme elle est chargée sur la machine client avant l'exécution, si le type est assez futé pour trouver sous quel nom temporaire tordu elle se planque, il en fait une copie puis la décompile et il a tout gagné.
Pour les navigateurs, il me semble que Win XP n'intègre pas d'interpréteur Java de base, qu'il faut en télécharger un.
Marsh Posté le 25-11-2001 à 17:44:48
euh....concretement , pour faire mon premier "hello world" en java, je fais comment ?!
Marsh Posté le 25-11-2001 à 22:47:18
pour faire ton premier prog
http://www-inf.enst.fr/~charon/coursJava/
c'est un cours sympa
http://www5conf.inria.fr/fich_html [...] erview.htm
celui ci est fait par l'inria
Marsh Posté le 26-11-2001 à 16:03:40
merci beaucoup thaodalf, je vais trouver mon bonheur dnas ces documents
Marsh Posté le 27-11-2001 à 00:31:56
Jborland c est gratuit, mais c est bien ?? .....Ca me parait un peu compliqué ?!
(ps : comment on fait pour que l applet s execute dnas une page web?!)
Marsh Posté le 27-11-2001 à 21:23:37
utilise FORTE c'est un log fait par sun lui meme
il est tres bien.
LOGIN a sorti un hors serie speciale java il y a 1 mois
tres bien fait en +
tu encore pouvoir le touver
Marsh Posté le 29-11-2001 à 13:45:00
oky merci, j etacherais de toruver login chez mon marchand de journaux
j ai finallement choppé le logiciel de sun (jdk, avec java et javac pour compiler..
j ai aussi trouver le celebre hello world dont voici le code :
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello world!", 50, 25);
}
}
tout vas bien, mis a part que je capte pas trop le "type" de programmation : y a que des classes, mais pas de fonctions main commen en C ??
[edtdd]--Message édité par slvn--[/edtdd]
Marsh Posté le 29-11-2001 à 14:24:43
slvn a écrit a écrit : import java.applet.Applet; import java.awt.Graphics; tout vas bien, mis a part que je capte pas trop le "type" de programmation : y a que des classes, mais pas de fonctions main commen en C ?? |
oui il n'y a que des classes
par contre il y a bien une methode
main static
qui est heritee de ta classe applet !
A+
LEGREG
Marsh Posté le 30-11-2001 à 19:46:54
euh pas tout capté : dnas mon fichier je declare que des classes .. mais il y a bien une classe "mere", et là, il faudrait l instancier ?! mais je peux pas car y a pas de fonction main ?!
(la classe applet, elle est où ??)
Marsh Posté le 01-12-2001 à 10:53:13
Si tu veux montrer un héritage dans ta classe, ca ne se passe pas au niveau d'une fonction ,mais à celui de la classe.
class MaClasseAMoi extends SaClasseAlui
{
blablabla
.....
....
}
Marsh Posté le 01-12-2001 à 11:54:50
mince je me suis mal exprimé je sais commet faire de l heritage avec des classes, du moins en C++.
mon pb, vient du fait que je captes pas comment le java fonction,
en C++: on a une fonction main, des classes, et dnas la fonction main, on cree des "objets" a partir des classes, et hop le programme devient qq chose avec des objets qu on peux utiliser !
alors qu en java (mais j ai suremnt mal compris ce passage) :
on declare des classes, mais on ne peut jamais créer d objet à partir de ces classes puisque y a pas de fonctions Main ??
Marsh Posté le 01-12-2001 à 12:40:17
slvn a écrit a écrit : alors qu en java (mais j ai suremnt mal compris ce passage) : on declare des classes, mais on ne peut jamais créer d objet à partir de ces classes puisque y a pas de fonctions Main ?? |
Hi hi
Mais il y a l'opérateur new en Java. Prend l'example très classique d'une forme (shape). Tu as une classe shape.java que tu définis sans fonction main(). Par contre tu définis un constructeru, du genre
public shape()
{
....
}
ensuite tu définis un carré
public class square extends schape {
private int cote = 0;
public square (int cote)
{
this.cote = cote
}
Je sais pas cmt on dit cote en anglais
Bon bref, toujours pas de main. Maintenant tu as ta classe principel qui va créer un carré, genre Test
public class Test {
public static void main(String args[])
{
Square MonCarre = new Square(args[0]);
}
Si tu fais java Test 4
Tu crées une INSTANCE de la classe carré avec 4 de coté.
C'est clair ?
Marsh Posté le 01-12-2001 à 13:40:03
Darklord22, voila ce qui me pose pb dna ston exemple :
dans la classe teste, tu crées une instance(un objet ?!) de la classe square (qui herite de la classe shape)
mais cette instance de square, n est crée que lorsque tu crée une instance de teste, et vu qu on ne crée pas d instance de teste; on ne crée pas d instance de square.
( j ai sans doute pas capter le role de main, elle s exectue automatiquement ?!, on peut definir pluieurs main ?! aucune?!)
Marsh Posté le 01-12-2001 à 13:43:27
slvn a écrit a écrit : Darklord22, voila ce qui me pose pb dna ston exemple : dans la classe teste, tu crées une instance(un objet ?!) de la classe square (qui herite de la classe shape) mais cette instance de square, n est crée que lorsque tu crée une instance de teste, et vu qu on ne crée pas d instance de teste; on ne crée pas d instance de square. ( j ai sans doute pas capter le role de main, elle s exectue automatiquement ?!, on peut definir pluieurs main ?! aucune?!) |
C'est très simple en fait. Comme tu le sais main est le point d'entrée de tout programme (aussi bien en C++ qu'en Java a qque exceptions pres (appelet, servlet et compagnie). Bref.
Lorsque tu executes la Virtual Machine via la commande java, tu dois passer en paramètre le nom d'une classe. Cette classe doit comporter une classe main et est executée automatiquement par la jvm
Donc lorsque tu fais java Test 4
la jvm execute main de Test, qui instancie une instance de square avec 4 puisque args[0] = 4 dans ce cas ci. En c++ c'est différent (le nom de l'object ne fait pas partie des arguments en java).
Vala c++ clair comme ca?
Marsh Posté le 01-12-2001 à 13:44:51
slvn a écrit a écrit : Darklord22, voila ce qui me pose pb dna ston exemple : dans la classe teste, tu crées une instance(un objet ?!) de la classe square (qui herite de la classe shape) mais cette instance de square, n est crée que lorsque tu crée une instance de teste, et vu qu on ne crée pas d instance de teste; on ne crée pas d instance de square. |
Pour etre plus précis, nul besoin est d'executer une instance de la classe Test puisque la méthode main est statique (static). Cela signifie que tu peux l'exécuter sans créer une instance auparavant. Donc pas besoin d'avoir d'instance de test pour appeller sa fonction main
a+
Marsh Posté le 01-12-2001 à 13:52:59
static, ca veut dire qeu ca ne s execute qu une seul fois ??
main= automatique ?!
j ai un helloworld, qui n a ni main, ni static mais il marche
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello world!", 50, 25);
}
}
Marsh Posté le 01-12-2001 à 14:03:11
slvn a écrit a écrit : static, ca veut dire qeu ca ne s execute qu une seul fois ?? main= automatique ?! j ai un helloworld, qui n a ni main, ni static mais il marche import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } } |
PDTR
Tu as pris juste l'example qu'il ne fallait pas. J'ai dit que main etait le point d'entree a quelque exception pres dont applet, servlet. Et ce code est le code d'une applet (je te passe les détails).
Je crois que tu devrais lire un livre pour débutant sans vouloir te vexer parce que les efforts sont un peu désorientés ... Ca set à rien de comprendre à la 6-4-2.
Mais pour répondre à ta question, seul main est automatique car c'est le point d'entrée d'un prog java (pas applet ou autres)
----
Static c'est quoi ?
Suppose que tu veux définir un ensemble d'objets, par exemple des pommes. Et tu veux savoir combien il y en a. Si tu fais un champ static int appleCount = 0; voici ce qu'il va se passer.
Chaque isntance d'apple aura le MEME CHAMP appleCount car il est statique
statique = propre à la classe et le même pour chaque instance. C'est d'ailleurs pour ca que main est statique. Il ne doit pas y avoir plusieurs main différents EN MEME TEMPS pour un meme prog java ok (T'as pas 10 mains pour lanceer un prog C++ non plus).
Bref, si dans ton constructeur tu fais
public Apple()
{
appleCount++;
}
Si tu fais
Apple dummy = new Apple();
Apple other = new Apple();
Apple third = new Apple();
et bien dummy.appleCount vaudra 3, other.appleCount vaudra 3 et third.appleCount vaudra 3
C'est le même champ pour les 3 instances.
Compris ?
Le vrai hello world pour un programme Java est le suivant:
public class HelloWorld {
public static void main(String args[])
{
System.out.println("HEllo slvn !!!!" );
System.out.println("I am a Java program" );
System.exit(0);
}
Sauve ca, enregistre le dans un fichier qui s'appelle HelloWorld.java (la casse est importante). Puis qd c fait tu fais
java HelloWorld (tu dois etre dans le rep ou tu as mis le fichier)
A+
Marsh Posté le 01-12-2001 à 15:16:41
ok, d accord pour static
pour le bouqin, j ai trouvé le manuel de Jbuilder 3, et psui dautre choses, mais surment que je ferai mieux d achetter un bouqin !
sinon, pour l application : il "compile" bien, mais avec "java HelloWorld", j ai une erreur :
Exeception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
Marsh Posté le 01-12-2001 à 17:34:57
C'est parce que ton classpath n'est pas initialise. Le classpath est une variable d'environnement qui dit a la JVM ou elle doit chercher les classes.
mets toi dans le rep ou se trouve HelloWorld.java et tapes (en DOS)
set classpath=.
java HelloWorld
si tu es sous linux c pareil export ....
A+
Marsh Posté le 02-12-2001 à 03:03:38
vous etes courageux les gars qd meme c 'est a se demandé si c pas un gars de chez sun qui se cache deriere slvn
mais juste une precision je crois que java c plus lent que le basic sans dec j aime bien ce language mais qu est ce que c long a se lancer
sinon je suis preneur d un site sur le c++ en francais j aimerait savoir faire tt ce que je sait faire en java en c++(socket fichier)
merci
Marsh Posté le 02-12-2001 à 10:23:52
non je suis pas de chez sun j aimerais bien, on verra plus tard mais en ce moment non
si tu cherche qq choses sur le C++, y a des tutorials sympa : celui de "christian casteyde" par ex, ou bien le bouqin qu on peu chopper sur le net: "think in c++"
Marsh Posté le 02-12-2001 à 15:08:36
www.polymorphe.org /rubrik programmation, tu trouveras les bouqin en question
Marsh Posté le 03-12-2001 à 09:01:26
slvn a écrit a écrit : non je suis pas de chez sun j aimerais bien, on verra plus tard mais en ce moment non si tu cherche qq choses sur le C++, y a des tutorials sympa : celui de "christian casteyde" par ex, ou bien le bouqin qu on peu chopper sur le net: "think in c++" |
Slvn, en ce qui te concerne, Thinking in Java 2nd Edition est le livre qu'il te faut. DL sur www.BruceEckel.com
A+
Marsh Posté le 03-12-2001 à 09:47:59
Merci pour le site c'est vraiment super sympa
PS : Si jamais tu as d'autres ites comme ca avec des bouquins complets online, je suis preneur
Marsh Posté le 03-12-2001 à 10:00:38
MarvinLeRouge a écrit a écrit : Merci pour le site c'est vraiment super sympa PS : Si jamais tu as d'autres ites comme ca avec des bouquins complets online, je suis preneur |
C'est à moi que tu parleS? Si oui quels aspects recherche tu particulièrement?
Marsh Posté le 22-11-2001 à 19:00:41
ca permet de creer une application qui tourne sur un client ?!....mais encore ?!
ca se compile je crois, on peux communiquer avec un programme sur un serveur ?!
le java, ca se fait avec du notepad, ou y a un logiciel ??
et puis, est il possible de tester le java en local ?!
.....et sinon, c bien c nul ??
bref, toute remarque interessant est bienvenue