Προγραμματισμός Java

Ποιο Java IDE προτιμάτε;

Αποτελέσματα της δημοσκόπησης (Ψήφισαν 3)
  • Intellij IDEA

    Ψήφοι: 3 100.0%
  • Eclipse

    Ψήφοι: 0 0.0%
  • NetBeans

    Ψήφοι: 0 0.0%
  • JDeveloper

    Ψήφοι: 0 0.0%
  • Android Studio

    Ψήφοι: 0 0.0%
  • Άλλο

    Ψήφοι: 0 0.0%

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Δύσκολο βλέπεις η Java δεν έχει τελεστή sizeof όπως η C που να επιστρέφει το μέγεθος που πιάνει στη μνήμη μια δομή, καθώς είναι εκτός της φιλοσοφίας της γλώσσας να ασχολείται ο προγραμματιστής με το memory management. Αν θυμάμαι καλά υπάρχει το memory profiler, δες εκεί ίσως έχει και το μέγεθος.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

akikos

Επιφανές μέλος

Ο Ανδρέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Η.Μ.Μ.Υ. και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 11,842 μηνύματα.
Είμαι αρχάριος,οπότε συγχωρείστε με για όποιο χάος δείτε.
Εχω μάθει while,if,switch και κάποια βασικά μεθόδων + constructor.

Θέλω να κάνω σαν κουίζ που έχει πολλαπλές απαντήσεις...
Είδα κάπου οτι για να το κάνω αυτό πρέπει να χρησιμοποιήσω arrays, είδα και γι'αυτά οπότε...ωστόσο δεν νομίζω να έκανα καλή χρήση των arrays στο πρόγραμμα που θα δείτε.

Το ΒΑΣΙΚΟ ΠΡΟΒΛΗΜΑ είναι οτι δεν μου πιάνει για σωστές τις απαντήσεις.
πχ είτε γράψω "b" είτε "Obama" (χωρις εισαγωγικα) στη πρώτη ερώτηση, δεν αυξάνεται ο μετρητης για τις σωστές απαντήσεις που έχω βάλει(correct++).
Γιατί? (ή αν έχετε εναλλακτικό τρόπο -αλλά οχι πολύ προχωρημένο- για τη καταμέτρηση των απαντήσεων)

Code:
package quizAdvanced;
import java.util.*;

public class quizAdvanced {

    public static void main(String[] args) {
        
        Scanner input = new Scanner(System.in);
        String[] a = new String[5];
        String[] b = new String[5];
        String[] c = new String[5];
        
        int count = 0;
        String answer;
        int correct = 0;
        int wrong = 0;
        
        a[0] = "G. Bush Jr.";
        a[1] = "Obama";
        a[2] = "Lincoln";
        a[3] = "Washington";
        a[4] = "Papandreou";
        
        b[0] = "Apple";
        b[1] = "Motorola";
        b[2] = "Lenovo";
        b[3] = "Sony";
        b[4] = "Google";
        
        c[0] = "Doha";
        c[1] = "Boha";
        c[2] = "Al Khtor";
        c[3] = "Loha";
        c[4] = "Dammam";
        
        while (count < 3) {
            
            switch (count) {
            
            case 0:
                System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "Who is the president of U.S.A?", 
                        a[0],a[1],a[2],a[3],a[4], "Enter the answer: ");
                answer = input.nextLine();
                
                if (answer == "b" || answer == "Obama")
                    ++correct;
                else
                    ++wrong;
                break;
                
            case 1:
                System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "Which company of the following created Android software?", 
                        b[0],b[1],b[2],b[3],b[4], "Enter the answer: ");
                answer = input.nextLine();
                
                if (answer == "e" || answer == "Google")
                    ++correct;
                else
                    ++wrong;
                break;
                
            default:
                System.out.printf("%s\n \na) %s\nb) %s\nc) %s\nd) %s\ne) %s\n %s\n", "What's the capital of Qatar?", 
                        c[0],c[1],c[2],c[3],c[4], "Enter the answer: ");
                answer = input.nextLine();
                
                if (answer == "a" || answer == "Doha")
                    ++correct;
                else
                    ++wrong;
                break;
            }
            
            ++count;
        }
        
        System.out.println("Results: ");
        if (correct == 3)
            System.out.println("Congrats! 3 out of 3.");
        else if (correct == 2)
            System.out.println("Good,but you could be better.");
        else
            System.out.println("You failed!");
        
        System.out.println(correct +" - " + wrong);
    }
}
Όποιες προτάσεις έχετε και διορθώσεις, δεκτές! :)
Θα είχα περιέργεια πως γίνεται οι ερωτήσεις (αν είχα 100 ας πούμε αντι για 3) να ανακατεύονται καθώς και οι απαντήσεις! Δηλαδή σε μια ερώτηση να μην είναι η σωστή απάντηση πάντα στο b,να πηγαίνει και σε άλλη θέση.

Ευχαριστώ
Για να συγκρίνεις τις τιμές δυο string μεταξύ τους μη χρησιμοποιείς το == αλλά τη μέθοδο equals p.x. answers.equals("Obama"). Πρόσθεσε ακόμα ένα στοιχείο σε κάθε πίνακα που θα έχει την σωστή απάντηση και τροποποίησε το κώδικα έτσι ώστε να μην επαναλβάνεις το κώδικα με μικροδιαφορές κάθε φορά.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

tazos87

Νεοφερμένος

Ο tazos87 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 14 μηνύματα.
Μαθαινοντας java και εχοντας ως στοχο το android,θελω να ρωτησω πως κανω ενα απλο πραγμα:

Πως αρχιζω ενα προτζεκτ με τον κωδικα που εχω γραψει σε java??

Εχω εγκαταστησει το Android sdk και εχω τρεξει στη συσκευη το default προγραμμα που εμφανιζει "hello world". Ξεκιναω ως android project(eclipse εχω) αλλα μετα....
Δεν ηξερα που να αντιγραψω τον κωδικα!(αν πρεπει να το κανω αυτο)

Παρακαλω διαφωτιστε με.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Tasos09

Εκκολαπτόμενο μέλος

Ο Tasos09 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 165 μηνύματα.
Τον κώδικα τον αντιγράφεις κάτω από το φάκελο src, όπου θα δεις ένα αρχείο MainActivity java.
Αλλά πιθανότατα το πράμα δε θα δουλέψει όπως περιμένεις, καθώς το Android έχει τις δικές του ιδιαιτερότητες όσον αφορά την ανάπτυξη.
Καλά κάνεις και μαθαίνεις java, αφού σε αυτή θα γράφεις τις εφαρμογές, αλλά σου προτείνω να κοιτάξεις λίγο πώς δημιουργείς γραφική διεπαφή στο Android, τι είναι Activity, fragment κτλ κτλ. Θα βρεις πολύ υλικό στο ιντερνετ για να ξεκινήσεις. Αν θέλεις να σου στείλω κάποια e-books που έχω στείλε μου ένα μήνυμα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

tazos87

Νεοφερμένος

Ο tazos87 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 14 μηνύματα.
Ευχαριστώ συνονόματε!
Βασικά που ακριβώς να βάλω τον κώδικα, είχα ανοιχτο το MyActivity(αντι για main) και εμφανίζεται έτσι:
Code:
package com.and.myapp;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

public class MyActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_my);

		if (savedInstanceState == null) {
			getSupportFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.my, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	/**
	 * A placeholder fragment containing a simple view.
	 */
	public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_my, container,
					false);
			return rootView;
		}
	}

}

Εχω αυτό το βιβλίο για Android: https://www.papasotiriou.gr/product/anaptiksi-efarmogon-me-to-android αλλά όσο είδα δεν γράφει κάτι για επεξεργασία κώδικα :(
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

akikos

Επιφανές μέλος

Ο Ανδρέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Η.Μ.Μ.Υ. και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 11,842 μηνύματα.
Bάλε το βιβλίο στη βιβλιοθήκη και δες το tutorial. Ακολούθησε το βήμα βήμα υλοποιώντας ότι κάνει.


 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Tasos09

Εκκολαπτόμενο μέλος

Ο Tasos09 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 165 μηνύματα.
Δε μπορώ να σου απαντήσω στο που να βάλεις τον κώδικα, γιατί δεν υπάρχει απάντηση! Εξαρτάται από τις λειτουργίες που εκτελεί. Θα σου προτείνω το ίδιο με τον akiko, να δεις κάποια tutorials, κυρίως στο κομμάτι που αφορά το Android και μετά θα είσαι σε θέση να χρησιμοποιήσεις τη java που έμαθες.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

itlover

Νεοφερμένος

Η itlover αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 30 ετών και επαγγέλεται Φοιτητής/τρια. Έχει γράψει 15 μηνύματα.
Υλοποιήστε την κλάση αυτή, με όνομα MultipleChoiceQuestion, που θα περιλαμβάνει για κάθε στιγμιότυπο:
• το κείμενο της ερώτησης (ως μια σειρά χαρακτήρων),
• το πλήθος των απαντήσεων (ακέραιος αριθμός, λογικά μεγαλύτερος από το 1 για να έχει νόημα η επιλογή ορθής απάντησης) και
• ένα πίνακα (που θα έχει μέγεθος ίσο το πλήθος των απαντήσεων) με τα κείμενα των απαντήσεων
Μέσα στην κλάση αυτή θα πρέπει να υλοποιήσετε τους παρακάτω δημιουργούς:
• public MultipleChoiceQuestion(), που αρχικοποιεί ένα στιγμιότυπο με κενή ερώτηση (δηλαδή σειρά χαρακτήρων που δεν περιλαμβάνει τίποτα, ήτοι την "") και δύο (2) απαντήσεις: "Σωστό" και "Λάθος"
• public MultipleChoiceQuestion(String question, int noOfAnswers), που αρχικοποιεί ένα στιγμιότυπο με την ερώτηση question, τον αριθμό απαντήσεων με το noOfAnswers και τον πίνακα των απαντήσεων με ένα πίνακα μεγέθους noOfAnswers που περιέχει κενές απαντήσεις
Επίσης μέσα στην κλάση θα πρέπει να υλοποιήσετε τις μεθόδους:
• public String getQuestion(), που επιστρέφει το κείμενο της ερώτησης
• public String getAnswer(int noOfAnswer), που επιστρέφει το κείμενο της απάντησης με αριθμό noOfAnswer
• public void setQuestion(String question), που θέτει την ερώτηση στην παράμετρο question
• public void setAnswer(int noOfAnswer, String answer), που θέτει την απάντηση με αριθμό noOfAnswer στην απάντηση answer (εάν ο αριθμός noOfAnswer είναι εκτός ορίων, τότε η μέθοδος δεν κάνει τίποτα)
• public void pose(), που θέτει την ερώτηση, δηλαδή τυπώνει στην οθόνη την ερώτηση και τις απαντήσεις αριθμημένες (δηλαδή, με τον αριθμό τους να προηγείται του κειμένου), σε χωριστές γραμμές την κάθε μία.
Κυρίως πρόγραμμα
Προκειμένου να δοκιμάσετε την κλάση σας υλοποιήστε μια άλλη κλάση με όνομα QuestionTester που περιέχει μόνο την μέθοδο main() η οποία:
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης τύπου σωστό ή λάθος, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων και θέτει την ερώτηση σε αυτή που έδωσε ο χρήστης
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης πολλαπλών απαντήσεων και το πλήθος των απαντήσεων, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων και στη συνέχεια διαβάζει και θέτει τα κείμενα των απαντήσεων
• θέτει τις δύο ερωτήσεις (δηλαδή, τα τυπώνει στην οθόνη τις δύο ερωτήσεις, μαζί με τις απαντήσεις τους)
Εκτελέστε το πρόγραμμά σας, τουλάχιστον δύο φορές και δώστε ενδεικτικές ερωτήσεις και απαντήσεις (με τουλάχιστον 4 απαντήσεις για την δεύτερη ερώτηση). Αντιγράψτε σε ένα αρχείο κειμένου (με copy&paste) τα αποτελέσματα της εκτέλεσης του προγράμματος (για όλες τις δοκιμές).
Κλάση για ερωτήσεις πολλαπλών απαντήσεων με ένδειξη της ορθής απάντησης
Υλοποιήστε την κλάση, με όνομα MultipleChoiceQuestionWithCorrectAnswer, που κληρονομεί από την MultipleChoiceQuestion, και επιπλέον περιλαμβάνει τον αριθμό της ορθής απάντησης.
Μέσα στην κλάση αυτή θα πρέπει να υλοποιήσετε τους παρακάτω δημιουργούς:
• public MultipleChoiceQuestionWithCorrectAnswer (), που αρχικοποιεί ένα στιγμιότυπο όπως και η αντίστοιχη της κλάσης MultipleChoiceQuestion, και θέτει τον αριθμό της ορθής απάντησης στο ένα (1)
• public MultipleChoiceQuestionWithCorrectAnswer (String question, int noOfAnswers), που και αυτή αρχικοποιεί ένα στιγμιότυπο όπως και η αντίστοιχη της κλάσης MultipleChoiceQuestion, και θέτει τον αριθμό της ορθής απάντησης στο ένα (1)
Εννοείται πως ο αριθμός ένα (1) ως ορθή απάντηση, θα τροποποιηθεί αργότερα ώστε να περιέχει τον αριθμό που πραγματικά αντιστοιχεί στην ορθή απάντηση. Στους παραπάνω δημιουργούς δεν είναι γνωστή η ορθή απάντηση (καθώς λείπει η ερώτηση ή οι απαντήσεις) και έτσι επιλέγεται αυθαίρετα η αρχικοποίηση της ορθής απάντησης στο ένα(1).
Επίσης μέσα στην κλάση αυτή υλοποιήστε τις επιπλέον μεθόδους:
• public int getCorrectAnswer(), που επιστρέφει τον αριθμό της ορθής απάντησης
• public void setCorrectAnswer (int correctAnswer), που θέτει τον αριθμό της ορθής απάντησης στην τιμή correctAnswer
• public boolean checkAnswer(int answer), που ελέγχει εάν η απάντηση με αριθμό answer είναι ορθή ή όχι, τυπώνει σχετικό μήνυμα και αν είναι λάθος τυπώνει και τη σωστή απάντηση (προσοχή μήπως ο αριθμός της ορθής απάντησης είναι, λανθασμένα βέβαια, εκτός ορίων και δεν υπάρχει κείμενο απάντησης για να τυπωθεί), και επιστρέφει true εάν η απάντηση είναι ορθή ή false αν είναι λάθος
Τροποποιημένο κυρίως πρόγραμμα
Τροποποιήστε την μέθοδο main() της κλάσης QuestionTester, ώστε μετά από την ανάγνωση των στοιχείων της κάθε ερώτησης να διαβάζει τον αριθμό της ορθής απάντησης, και μετά την εκτύπωση της κάθε ερώτησης να διαβάζει την επιλογή του χρήστη και να τυπώνει τα αποτελέσματα του ελέγχου της επιλογής αυτής. Έτσι το κυρίως πρόγραμμα θα πρέπει να:
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης τύπου σωστό ή λάθος, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων με ένδειξη της ορθής απάντησης και θέτει την ερώτηση σε αυτή που έδωσε ο χρήστης
• διαβάζει από το χρήστη τον αριθμό της ορθής απάντησης (1 για σωστό και 2 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης πολλαπλών απαντήσεων και το πλήθος των απαντήσεων, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων με ένδειξη της ορθής και στη συνέχεια διαβάζει και θέτει τα κείμενα των απαντήσεων
• διαβάζει από το χρήστη τον αριθμό της ορθής απάντησης (1 για σωστό και 2 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης
• θέτει την πρώτη ερώτηση (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)
• διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του
• θέτει την δεύτερη (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)
• διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του
• τυπώνει το πλήθος των ορθών επιλογών
Παραπάνω οι ενέργειες που είναι με πλάγια γράμματα υπάρχουν ήδη από το προηγούμενο κυρίως πρόγραμμα. Προσοχή όμως καθώς, σε κάποια από αυτά τα τμήματα θα πρέπει να τροποποιηθεί η δημιουργία των στιγμιότυπων των δύο ερωτήσεων, ώστε να δημιουργούνται στιγμιότυπα της κλάσης για τις ερωτήσεις με ένδειξη της ορθής απάντησης.
Εκτελέστε το πρόγραμμά σας, τουλάχιστον τέσσερις φορές και δώστε ενδεικτικές ερωτήσεις και απαντήσεις (με τουλάχιστον 4 απαντήσεις για την δεύτερη ερώτηση και επιλογές που είναι άλλες φορές ορθές και άλλες λάθος). Αντιγράψτε σε ένα αρχείο κειμένου (με copy&paste) τα αποτελέσματα της εκτέλεσης του προγράμματος (για όλες τις δοκιμές).



απλα εχω χαθει ισως καποιος εμπειρος με βοηθουσε.....
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Που έχεις κολλήσει? ουσιαστικά δεν έχεις να σκεφτείς κάτι η εκφώνηση στα λέει όλα.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

itlover

Νεοφερμένος

Η itlover αυτή τη στιγμή δεν είναι συνδεδεμένη. Είναι 30 ετών και επαγγέλεται Φοιτητής/τρια. Έχει γράψει 15 μηνύματα.
public void setAnswer(int noOfAnswer, String answer), που θέτει την απάντηση με αριθμό noOfAnswer στην απάντηση answer (εάν ο αριθμός noOfAnswer είναι εκτός ορίων, τότε η μέθοδος δεν κάνει τίποτα) πως θετουμε την απαντηση ...?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
στο λέει πάνω πάνω, έχεις ένα πίνακα από String με τις απαντήσεις, η συνάρτηση πρακτικά αυτό που κάνει είναι απλά μια ανάθεση στο index που της υποδεικνύεται.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

tazos87

Νεοφερμένος

Ο tazos87 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 14 μηνύματα.
Όπως λέει ο τίτλος, είχα γράψει σε java γεννήτρια τυχαίων αριθμών στυλ Τζοκερ, δλδ 5 αριθμοί από 1-45 και ένας αριθμός από 1-20.

Ενώ στη Java λειτουργεί κανονικά, στο Android εμφανίζει μόνο τον έναν αριθμό απο τους 5 + τον εξτρα αριθμό απο 1-20.

Τι κάνω λάθος? (είμαι εντελώς καινούριος Android,οπότε να είστε επιεικείς)

Υ.Γ: Ο κώδικας μου είναι στη onCreateOptionsMenu(Menu menu)

Code:
public class MainActivity extends ActionBarActivity {

	Button button1;	
	TextView display;
	TextView show;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		if (savedInstanceState == null) {
			getSupportFragmentManager().beginTransaction()
					.add(R.id.container, new PlaceholderFragment()).commit();
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		
		button1 = (Button) findViewById(R.id.b1);		
		display = (TextView) findViewById(R.id.display);
		show = (TextView) findViewById(R.id.show);

		
		button1.setOnClickListener(new OnClickListener() {
						
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
									
				Random ran = new Random();

				ArrayList<Integer> al = new ArrayList<Integer>();
			    for(int i = 1; i <= 45; i++)
			        al.add(i);
			    
			    for(int i = 0; i < 5; i++) {
			    	int x = al.remove(ran.nextInt(al.size()) );
			    	display.setText(" " + x);
			    }
			    show.setText(" | "+ (ran.nextInt(20)+1));
			}
		});
		
		return true;
	}
		
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	/**
	 * A placeholder fragment containing a simple view.
	 */
	public static class PlaceholderFragment extends Fragment {

		public PlaceholderFragment() {
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container,
				Bundle savedInstanceState) {
			View rootView = inflater.inflate(R.layout.fragment_main, container,
					false);
			return rootView;
		}
	}

}
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Καταρχάς ποστάρεις σε λάθος forum. δεν ασχολούντε και πολλά άτομα εδώ με προγραμματισμό και ιδιαίτερα με android. Δοκίμασε στο https://stackoverflow.com/
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Έχω φτιάξει μία enumeration

public enum Choice
{
SPLASH,
MENU,
OPTIONS,
SCORES,
NEWGAME

}

σε μια άλλη κλάση δηλώνω

private Choice playerSelection;

όταν πάω όμως να αναθέσω τιμή στην playerSelection π.χ

playerSelection = MENU;

τρώω error MENU cannot resolve to a variable

άρα ο compiler δεν καταλαβαίνει πως το μενού αποτελεί εσωτερική τιμή της enum choice.

Ξέρει κανείς γιατί γίνεται αυτό ή τι κάνω λάθος?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
playerSelection = Choice.MENU;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Σωστός ευχαριστώ.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Άλλη μία ερώτηση.

Έχω τρεις κλάσεις: MainClass
Screens
GameClass

H MainClass δημιουργεί ένα αντικείμενο της Screens και ένα της GameClass. Θέλω το αντικείμενο της GameClass να έχει πρόσβαση σε κάποιες μεταβλητές του αντικειμένου της Screens. Πως θα γίνει αυτό δεδομένο ότι η Java δεν έχει δείκτες?

Όπως το σκέφτομαι μπορώ να φτιάξω μια μέθοδο στη Screens που θα κάνει return μια μεταβλητή και άλλη μια μέθοδο στη GameClass που θα εισάγει αυτή τη μεταβλητή αλλά αυτό σημαίνει πως θέλω μια ξεχωριστή μέθοδο για κάθε μεταβλητή.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 875331

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Άλλη μία ερώτηση.
H MainClass δημιουργεί ένα αντικείμενο της Screens και ένα της GameClass. Θέλω το αντικείμενο της GameClass να έχει πρόσβαση σε κάποιες μεταβλητές του αντικειμένου της Screens. Πως θα γίνει αυτό δεδομένο ότι η Java δεν έχει δείκτες?
Αν οι μεταβλητές της Screens είναι private(που καλό είναι να είναι), υλοποίησε get μεθόδους. Φτιάξε δλδ στην κλάση Screens κάτι σε:
public double getVariable()
{
return(variable);
}
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Επεξεργάστηκε από συντονιστή:

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
Για να εχει η GameClass προσβαση σε χαρακτηριστικα της Screen θα πρεπει να προσαρμοστουν τα API και των δυο κλασεων καταλληλα.
O μονος τροπος να γλυτωσεις τις μεθοδους set, get για τις μεταβλητες καθε κλασης ειναι αυτα να ειναι package (αν οι κλασεις ειναι στο ιδιο πακετο) ή public.

θα προτενα κι εγω να ειναι private και αρα να καθεσαι να κανεις ενα ματσο συναρτησεις αλλα ειναι προγραμματιστικη αποφαση αναλογα την εφαρμογη σου!
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 209912

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Προσπάθησα να κάνω τις μεταβλητές της Screens protected ώστε να έχουν πρόσβαση σε αυτές όλες οι κλάσεις του πακέτου, αλλά όταν το κάνω αυτό και πάω να αναφερθώ σε μια μεταβλητή του αντικειμένου της Screens μέσα από μία μέθοδο της GameClass παίρνω error πως η gameclass δεν αναγνωρίζει το αντικείμενο καθώς αυτό έχει δηλωθεί στην MainClass δηλαδή έξω από την GameClass.

Μάλλον θα κάνω μεθόδους get. Υπάρχει κάτι αντίστοιχο με τη struct της C ώστε να μπορέσω τουλάχιστο να ομαδοποιήσω τις μεταβλητές για να χρειάζομαι μόνο μια μέθοδο μεταφοράς ?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 9 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 1 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top