Möchte mich vorstellen

Status
Nicht offen für weitere Antworten.

all.in.one

Mitglied
Guten Tag,
ich bin ganz neu hier am start 🙂
Bin Informatik student und hab noch 1 semester zu machen, dann bin ich feddig...
Naja und Java habe ich mal in 2 Klausuren gehabt... Aber es sind jetzt bald 2 jahre her und es ist nicht mehr viel übrig... Also wollte ich anfangen Wieder einfach mal Privat zu Coden und werde bestimmt nicht selten mit dummen Fragen hier auftauchen... Daher dachte ich... ich stelle mich erstmal vor, bevor ich euch zumühle 😀
 
ok dann stelle ich mal meine erste Frage...
Also ich kenne die Sun Seite, da hat man ja ganz viele Klassen die Standartmäßig dabei sind aufgelistet und aufgeschlüsselt...
Als Beispiel mal die Klasse Time
Time (Java 2 Platform SE v1.4.2)
so die Fragen:
1. wie lautet mein Import?
Java:
import java.sql.Time;

2. wenn ich den Datum nutzen will, dann muss ich doch die Methode getDate() aufrufen, richtig? und diese Methode gibt ein int zurück oder was bedeutet dieser int in der Tabelle dahinter?
also so ungefähr:
Java:
Date zeit= new java.sql.Date.getDate() ;

das muss für den anfang reichen 🙂
 
Hhhmmja... aber das ist java.sql.Time ... hast du irgendwas mit Datenbanken vor? Vielleicht suchst du eher nach Date oder Calendar? (Jedenfalls sollte man sich, wenn bei einer Methode "deprecated" dabei steht, nach Alternativen umsehen...)
 
Also erstmal hi 🙂

zu deinen fragen:

1) korrekt
2) ja, die spalte bedeuted, dass die methode ein int zurückliefert, allerdings istdeine genannte methode auch deprecated 😀 du hast dir also ein doofes beispiel ausgesucht 😀

also, davon mal abgesehen, ist

Date zeit= new java.sql.Date.getDate() ;

auch total falsch 😀
Java:
//erst ein objekt erstellen
Date datum = new Date(System.currentTimeMillis());
//dann die methode aufrufen
		int date = datum.getDate();
 
ok ich verstehe... die Klasse war die Falsche....
Und obendrauf sehe ich dass die Objektorientierten konzepte nicht mehr ganz im kopf hab...
Also wenn ich eine Klasse wie currentTimeMillis() hab, dann muss ich erst ein Objekt erzeugen der datum heißt und dann über den objekt den wert raus holen???
warum kann man nicht sagen:
Java:
int date= new System.getDate();
??
 
In java existieren primitive Typen (int, long, short, double, float, byte) und Objekte (der Rest).

Java:
long now = System.currentTimeMillis()

gibt einen primitiven typen (long) zurück. (Die zeit in Milisekunden seit der Epoche (1.1.1970).
Date ist ein Objekt (wir mit new erstellt)
zB
Java:
long now = System.currentTimeInMillis();
Date dateObject = new Date(now);

nun wurde der long now in das Objekt java.utli.Date reingeshoben (über den entsprechenden Konstruktor) und das dateObject ist nun ein Objekt, welches dieser Zeit (now) entspicht.

EDIT:
char, boolean hab ich noch als primitiven Typen vergessen.
Dazu existieren noch die Wrapper-Klassen. erkennt man an der grossen Anfangsbuchstaben:
long -> primitiv
Long -> Objekt vom Type long
diese kann man auch konvertieren (bzw werden ab java 1.5 automatisch umgewandelt (auto-boxing)
 
Zuletzt bearbeitet:
hmm, weil die klasse java.lang.System diese methode nicht hat ;D
ich hab dich wohl mit System.currentTimeMillis()
durcheinander gebracht ;D

also
Java:
//erst ein objekt erstellen
Date datum = new Date();
//dann die methode aufrufen
        int date = datum.getDate();

ginge auch(bei util.date). da es aber bei sql.date keinen standart-konstruktor gibt, sondenr nur einen der entweder ein long (deswegen auch system.currenttimnemillis()) erwartet oder 3 int-werte. man hätte also beispielsweise auch schreiben können:
Java:
Date datum = new Date(2009,8,26);
		//dann die methode aufrufen
		        int date = datum.getDate();

/edit: tuck zu spät 😀
 
Grossen Respekt wenn jemand das Informatikstudium durchzieht, aber wie kann es dann zu solchen Fragen kommen?
 
Danke für die schnellen Antworten... Jetzt erinnere ich mich auch schon langsam...
Und naja zu dem Studium, also was man wohl bei informatik Studium nicht lernt ist wirklich programmieren. Wir machen von alles mögliche die Ansätze, und lernen schnell und effektiv informationen aufzunehmen... Aber wirklich programmieren ist handwerkzeug, auch damals wo ich die klausur geschrieben hab und das Wissen bezüglich Java frisch war, war ich kein Programmierer, denn das wird man, wenn man mal 6 monate jeden tag was gemacht hat... Das versuche ich eben jetzt in meine Freizeit nach zu holen 🙂
 
Zuletzt bearbeitet:
Java:
long now = System.currentTimeInMillis();
Date dateObject = new Date(now);

nun wurde der long now in das Objekt java.utli.Date reingeshoben (über den entsprechenden Konstruktor) und das dateObject ist nun ein Objekt, welches dieser Zeit (now) entspicht.

Also man kann den wert diese Method entweder direkt in ein Objekt speichern oder die werte in einen primitiven Typen speichern (sollte der entsprechende sein, sonst gehen info. verloren) und man kann auch die in ein primitiven Typen gespeicherte werte wieder in ein Objekt rein schrieben, richtig?

Bei dem letzten schritt.. Also wenn man den wert schon in der Variable now gespeichert hat und es dann in den Objekt rein schriebt... ist mir noch nicht ganz klar, wozu das gut sein kann... Also ich weiß, dass man bestimmte operationen nur mit Objekten durchführen kann.. oder ist dann das "dateObjekt" immer aktuell... ???:L
 
was willst du eigentlich machen?

Date repräsentiert ein Datum und das muss ja intern irgendwie gespeichert werden. Das macht man generell in der Informatik mit einem Timestamp zb
"the number of milliseconds since January 1, 1970, 00:00:00 GMT"

das ist das was du dem Konstruktor von Date übergeben kannst oder mit getTime zurück bekommst..
 
Ich hab sowohl an der Uni als auch an der FH versucht, Informatik zu studieren, und über die Uni-Variante kann ich das in der Tat bestätigen (das war allerdings auch schon 1994). Habs dann ja auch abgebrochen. FH war deutlich praxisbezogener, da lernte man wirklich programmieren, mit sauberen OO-Konzepten usw. Aber das ist ja eigentlich nicht das worums geht. War nur erstaunt dass offenbar wirklich ganz allgemeines Grundwissen über objektorientierte Konzepte fehlt. Kann man wohl nur den Rat geben, sich da mal gründlich und von Beginn an einzuarbeiten. Sind ja fast schon allgemeine Fragen und nicht unbedingt java-spezifisch.
 
@JanHH Naja, ob allgemeines Wissen bezüglich programmierung wirklich fehlt... Ich würde eher sagen, ich habe das konzept der OO-Programmierung nie richtig verstanden, was ich versuchen werde nach zu holen... Aber ich hab noch vor 6 Monaten ein Game in ein Projekt umgesetzt, da haben wir Perl genutzt und es klappte daher ganz gut... Muss mich nur mit Java wieder anfreunden und OO checken...

@Aradauer Ich wollte wie oben schon erwähnt mich langsam mit OO auseinander setzten und vorallem die bekanntesten Java Klassen mal kennen lernen...
Aber mit dem Timestamp ist ja eine komische sache. Da hast du dann ein riesen int wert?? hmm... Ich hätte eher gesagt gibt mir den momentanen Damtun+Uhrzeit dann würde ich das auseinander flücken und die werte(tag/monat..) einzeln weiter verarbeiten..
 
@Aradauer Ich wollte wie oben schon erwähnt mich langsam mit OO auseinander setzten und vorallem die bekanntesten Java Klassen mal kennen lernen...
Java Platform SE 6
da hast du eine Menge auf einen Blick und musst dir nur die passende raussuchen 😉

Aber mit dem Timestamp ist ja eine komische sache. Da hast du dann ein riesen int wert?? hmm... Ich hätte eher gesagt gibt mir den momentanen Damtun+Uhrzeit dann würde ich das auseinander flücken und die werte(tag/monat..) einzeln weiter verarbeiten..
Die millisekunden seit dem 1.1.1970 0:00:00 als eine große Zahl.
Von da an wird gezählt, immer die millisekunden hoch.
Wenn du dann eben die "große" Zahl 86400000 eingibts zählst du 24 Stunden hoch -> dein Date-Objekt repräsentiert den 2.1.1970 0:00:00. Automatisch wird da nix hochgezählt.
Wenn du keine Zahl übergibts bekommst du dann die aktuelle Zeit im Date-Objekt.

Von dem Date-Objekt was du dann hast kannst du dann weiter Informationen abfragen (z.b. welcher Tag der Woche denn der 2.1.1970 war - also Montag, Dienstag etc.).

Wie würdest du denn sonst deinem Rechner ein Datum geben wollen?
 
Da hast du dann ein riesen int wert??
Nein, long. Wurde aber oben auch schon einmal geschrieben.
ich habe das konzept der OO-Programmierung nie richtig verstanden,
Und trotzdem zwei Java-Klausuren überstanden? Respekt!
Muss mich nur mit Java wieder anfreunden und OO checken...
Im Studium habt ihr keine Unterlagen erhalten und gelernt, die einschlägige Literatur zu nutzen? Sonderbar...
Ich hätte eher gesagt gibt mir den momentanen Damtun+Uhrzeit dann würde ich das auseinander flücken und die werte(tag/monat..) einzeln weiter verarbeiten..
Spätestens bei der Differenzberechnung zwischen zwei Daten oder auch nur dem hohlen Hochzählen bräuchtest Du dafür ausgefeiltere Logik, als wenn Du einfach mit ms hantierst. Und würde trotzdem mehr Speicher kosten (Jahr-int, Monat-Byte, Tag-Byte, Stunde-Byte, Minute-Byte, Sekunde-Byte, ms-Short, ergibt alles in allem 11 Byte, also 88 Bit...mit einmal long sind wir dann gerade einmal bei 64 Bit).
Außerdem kannst Du es Dir doch jederzeit umformen und dann werden sogar Besonderheiten wie Schaltjahre berücksichtigt.

Gruß FatFire
 
ok mit dem Long sehe ich auch jetzt ein... und hab mir wieder das Buch vom Prof geliehen und angefangen auch nebenbei über OO zu lesen... :rtfm:
Ja das problem ist, dass man das ganze auch sehr theoretisch können kann, was dazu führt, dass man nicht eine Zeile vernüftiges Code hin bekommt. Aber das will ich ja jetzt ändern 😉

Ich hab jetzt was kleines geschrieben... (ich weiß hat noch kein sinn... bekommt er noch :joke: )
Aber es funktioniert nicht... Wenn ich in Eclips auf run gehe und dann Java-Application findet er keine main-Methode in den Ordner... woran könnte es liegen?
Java:
package learn;
import java.io.*;
import java.util.Calendar;
public class Brain
{
	private static void main(String args[])
		{
			Brain david= new Brain();
			
			System.out.println(david.time());
			
		}




public long time()
{
	Calendar rightNow = Calendar.getInstance();
	long time= rightNow.getTimeInMillis();
	return time;
	
}
}
 
ok nun hab ich bißchen verständniss fragen zu meinen Programm... Also in der Methode time, erstelle ich eine Objekt von dem Typ kalender. und mit der Methode getInstance() hole ich eine instance des ganzen... Aber was bedeutet das wirklich? Geht es darum erstmal die richtige Zeitzone zu finden, da es bei der Methoden beschreibung steht: Gets a calendar using the default time zone and locale.
Und erst dann kann ich mit eine weiteren Methode die tatsächliche Zeit auf das Objekt übertragen, den ich dann die Variable time zuweise??
hätte ich nicht einfach sagen können:
Java:
Calender rightnow= new Calender();
wozu brauche ich den Instance??
 
was sagt denn der compiler wenn du das mal ausprobierst? 😀 (bzw die api )



stichwort: abstract
 
Zuletzt bearbeitet:
Calender cannot be resolved to a type... sagt Eclipse
Für mich heißt es, dass die Methode Calender() kein Object zurück gibt... Wahrscheinlich gar nichts zurück gibt.. oder die Methode gibt es gar nicht in dieser Form... und daher auch wahrscheinlich die geschichte mit dem getInstance() oder??

Ich hab noch was ausprobiert:
Java:
Calendar cal = Calendar.getInstance();
java.util.Date date = cal.getTime();
dazu habe ich auch paar Fragen:
Warum muss ich erst ein Object der Klasse Calendar haben, um dann da ein Object des types date von einen anderen Klasse rein zu laden... oder was passiert hier? Und wie kann ich auf die einzelnen werte des Objectes zugreifen? Also ich hab ja jetzt die Variable date, die man auch wunderbar ausgeben kann mit println. Gibt es eine möglichkeit zb. nur den uhrzeit auszugeben?
 
hi,

also zu der sache davor, hab ich extra dir nen hinweis im kleingedruckten gegeben 😉
die klasse ist abstract, dahe rkannst du davon kein objekt erzeugen!

zu dem zweiten teil, was genau möchtest du eig. machen? 🙂

um die uhrzeit auszugeben, könntest du das z.b. so machen:
Java:
		SimpleDateFormat formatter = new SimpleDateFormat ("HH:mm:ss");
		Date currentTime = new Date();
		System.out.println(formatter.format(currentTime));

gibt halt viele möglichkeiten nach rom 🙂 du kannst dir auch mal gregoriancalender anschauen
Java:
		GregorianCalendar now=new GregorianCalendar();
		DateFormat df=DateFormat.getTimeInstance(DateFormat.SHORT);
		System.out.println(df.format(now.getTime()));
 
danke für díe Antwort.
Naja was will ich machen... Ich will OO richtig begreifen und nicht nur oberflächig...
GregorianCalendar ist sehr intressant. Da kann man auf die einzelnen Attribute in dem Objekt zugreifen:
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));

Aber warum kann ich hier nicht auf die Attribute zugreifen?
Java:
Calendar cal = Calendar.getInstance();
java.util.Date date = cal.getTime();
System.out.println(date);
wenn ich nach date einen punkt mache schlägt mir die auto ergänzung eine reihe intressante Methode for, wie getDay usw. die veraltet sind...

und was ist eigentlich wenn eine Methode in dem nächsten Java versionen veraltet "deprecated" ist? Funktionieren die Programme dann trotzdem?

und nochmal zu dem getTimeInMillis() zurück... Also mit dem ergebniss kann ich ja gar nix afangen, könntet ihr das ganz kurz bißchen aufschlüsseln... Also das ist die aktuelle Zeit in Millis (also millisekunden??) macht doch keinen sinn... dann könnte man das auf Studen und minuten umrechnen, hätte dann aber ein wert wie: 2 stunden und 29 min. das ist doch keine zeit angabe ;(
 
>und was ist eigentlich wenn eine Methode in dem nächsten Java versionen veraltet "deprecated" ist? Funktionieren die Programme dann trotzdem?

Depracated heist veraltet. Aus Java wurde noch nie was entfernt. Es soll als Hinweis für den Programierer gelten, diese Methode, Klasse nicht mehr zu benutzen. Ein Beispiel ist der StringTokenizer. Der sollte nicht benutzt werden dafür aber String#split oder halt Matcher/Pattern

>also das ist die aktuelle Zeit in Millis (also millisekunden??) macht doch keinen sinn...

ist einfach die Zeit seit der Epoche (1.1. 1970 0.00). Ganz einfach und eindeutig.

>könntet ihr das ganz kurz bißchen aufschlüsseln...

Date ist reinfach ein Datum, Zeitstempel oder was auch immer. Calendar ist der Kalender (zb GregorianCalendar, JulianCalendar, BudhistCalendar) welches ein Datum interpretiert: zB Schaltjahr, Jahr der Katze...
DateFormat formatiert die ein Date.

Java:
		Date date = new Date();
		Calendar cal = new GregorianCalendar();
		cal.setTime(date);
		// einzelne Dinge holen
		System.out.println(cal.get(Calendar.DAY_OF_MONTH));
		// oder formatieren
		DateFormat df = new SimpleDateFormat("dd  mm");
		System.out.println(df.format(date));
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben