Java
ავტორი brolia
კითხვები ამ ენასთან დაკავშირებით
წერილები: 50
brolia says:
1 მაისი 2012, 14:39
class A{
	static void doStuff(){
		System.out.println("A");
	}
}

class B extends A{
	static void doStuff(){
		System.out.println("B");
	}
}


მშვენივრად კომპილირდება და როგორც წიგნში წერია redifinition არის.
და როცა final ს ვუმატებ ორივე მეთოდს აღარ კომპილირდება და ვერ გავიგე რატო აღიქვამს თითქოს მაინდამაინც ოვერრაიდი მინდა პირველი მეთოდის და არა რედეფინიცია.
წერილები: 50
brolia says:
1 მაისი 2012, 14:47
და კიდევ სტატიკური ფუნქციიდან super.myFunction()
რატო არ შემიძლია გამოვიძახო ? სადაც myFunction არის მშობლის სტატიკური ფუნქცია ? (არასტატიკურს რატოც ვერ გამოვიძახებ ცხადია მარა სტატიკურის გამოძახებაზე ხო არ უნდა ექმნებოდეს პრობლემა ?)
წერილები: 66
Elle says:
7 მაისი 2012, 16:43
@brolia
final მეთოდების რედეფინიცია ან გადაფარვა არ შეიძლება.

super-ს რაც შეეხება, მაგ შემთხვევაში ვერ გამოიყენებ, რადგან ობიექტი არ გაქვს საერთოდ. სტატიკურ მეთოდებს ხომ ობიექტები არ სჭირდებათ, დამოუკიდებლად არსებობენ კლასის განსაზღვრებასთან ერთად. თან მაგათ გამოძახებაზეც კომპილაციის დონეზევე გარკვეულია უკვე ყველაფერი. ამიტომ არ მოქმედებს პოლიმორფიზმის თვისებებიც, რომლის მიხედვითაც runtime-ში ირკვევა რომელი კლასის მეთოდი გამოიძახოს. ის გამოიძახება, რომელი კლასის რეფერენსიც ჰქონდა.
წერილები: 50
brolia says:
8 მაისი 2012, 16:48
Elle

xo magram super.myFunction() (statukuri funqciidan) viZaxeb mSoblis statikur funqcias da obieqti rom arsebobdes arc araferSi Wirdeba mSoblis statikur funqcias.
წერილები: 66
Elle says:
8 მაისი 2012, 18:39
კი, მაგრამ super-ზეა საუბარი. super შეგიძლია გამოიძახო მხოლოდ ობიექტის მეთოდში, ობიექტის ინიციალიზატორში ან ობიექტის კონსტრუქტორში. სტატიკების დროს კი ობიექტები არ გაქვს..
წერილები: 50
brolia says:
11 მაისი 2012, 21:54
Elle
va ra cudia, me megona super is xmarebisTvis obieqti saWiro ar iqneboda, da realurad arc unda iyos saWiro Tuki mSoblis statikurs iZaxeb :|
წერილები: 54
varlevani says:
11 მაისი 2012, 22:57
შეგიძლია პირდაპირ დაწერო - "კლასის სახელი"."ფუნქციის სახელი"

მაგ.
int k = ParentClass.stFunction();

და არა ეს: int k = super.stFunction();
წერილები: 50
brolia says:
13 მაისი 2012, 10:49
:D:D:D

ეგ ვიცი პირდაპირ რომ შემიძლია, მე მაინტერესებდა სუპერის გამოყენება რატო არ შეიძლებოდა, იმიტომ რომ ვერანაირ წინააღმდეგობას ვერ ვხედავ რის გამოც შეიძლება აეკრძალათ ჯავას შემქმნელებს სტატიკურ ფუნქციაში სუპერის გამოყენება.
წერილები: 54
varlevani says:
13 მაისი 2012, 11:18
ალბათ ეს იქნება პასუხი:

თვითონ super უნდა იყოს ან სტატიკური ანდაც არასტატიკური.

1) არასტატიკური თუ იქნა - მაშინ სტატიკურ მეთოდში ვერ გამოიყენებ.
2) სტატიკური თუ იქნა - მაშინ მის არასტატიკურ ფუნქციებს ვერ გამოიყენებ.


ხოდა super არის არასტატიკური, ანუ სტატიკურ კლასში ვერ გამოიყენებ.
წერილები: 50
brolia says:
13 მაისი 2012, 14:04
Varlevani

ვერ გავიგე რას ამბობ.

"super უნდა იყოს სტატიკური ანდაც არასტატიკური"
რისი თქმა გინდოდა აქ ?

კიდე ერთხელ აგიხსნი :
ვარ სტატიკურ ფუნქციაში და მინდა დავწერო super.myFunct()
რა უშლის ხელს იმას რომ ეს შესაძლებელი იყოს ?
წერილები: 50
brolia says:
4 აგვისტო 2012, 16:43
static List<Integer> intArrayAsList(final int[] a) {
		if (a == null)
			throw new NullPointerException();
		return new AbstractList<Integer>() {
			public Integer get(int i) {
				return a[i]; // Autoboxing (Item 5)
			}

			@Override
			public Integer set(int i, Integer val) {
				int oldVal = a[i];
				a[i] = val;
				// Auto-unboxing
				return oldVal; // Autoboxing
			}

			public int size() {
				return a.length;
			}
		};
	}

მეთოდი რომელსაც გადაყავს მასივი ლისტად, მაგრამ ერთი რაღაც არ მესმის
როცა ქმნის აბსტრაქტლისტის ობიექტს და იქვე აკეთებს აბტრაქტული მეთოდების იმპლემენტაციას, ეს ობიექტი საიდან იმახსოვრებს იმ მასივის რეფერენსს a_ს ? (რომელსაც მერე get/set მეთოდებში იყენებს ? )
წერილები: 50
brolia says:
4 აგვისტო 2012, 16:53
უფრო მარტივად დავსვამ კითხვას :
როცა ანონიმური კლასის ობიექტს ვქმნი მეთოდში, და ამ კლასის
მეთოდები იყენებენ გარე მეთოდის რეფერენს ცვლადებს (რომელიც როგორც ჩანს final უნდა იყოს), რანაირად იმახსოვრებს ამ კლასის ობიექტი იმ რეფერენსებს ?
გთხოვთ გაიარეთ ავტორიზაცია კომენტარის გამოსაქვეყნებლად.
სიახლეები Facebook-ზე
მომავალი ღონისძიებები
მომავალი ღონისძიებების სია ცარიელია.
ღონისძიებების კალენდარი
მხარდამჭერები






ახალი კომენტარები
Dixtosa Episode II - Analysis...
Eშისაიდან მოვიდა 3**13?ისე 4 * 52 * 3**13 = 331M+ ...
Quick GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
Upsolving ჩაირთო...
saba_tavdgiridze GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
აღარ მინდა.:)...
saba_tavdgiridze GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
B ამოცანის 17 ტესტს ვერ მიმანიშნებთ?...
tornike5 GeOlymp 2013 - ფინალის შესახებ...
ვაპირებდი იგივე მეკითხა მარა მეგონა უეჭველი იქნება...
giorgi123 GeOlymp 2013 - ფინალის შესახებ...
მადლობა.შარშან ფინალში ამოცანების ყურებით ვიფარგლე...
Elle GeOlymp 2013 - ფინალის შესახებ...
შარშან ფინალს codeblocks-ით წერდით?დავაყენეთ codeb...