Obiektowość w Javie i Pythonie

0

Definicja obiektowości będzie taka jaką sobie przyjmiesz. Dla przykładu polska wikipedia ma wypisane takie cechy obiektu:

  • tożsamość, czyli cechę umożliwiającą jego identyfikację i odróżnienie od innych obiektów;
  • stan, czyli aktualny stan danych składowych;
  • zachowanie (ang. behaviour), czyli zestaw metod wykonujących operacje na tych danych.

Taka definicja wyklucza instancje typów niereferencyjnych ze zbioru obiektów w pewnych przypadkach. Sprawdzenie tożsamości może się odbyć praktycznie tylko poprzez porównanie dwóch adresów obiektów - jeśli adresy są takie same to wskazują na ten sam obiekt. Sprawdzenie stanu nie wystarcza to wywnioskowania tożsamości, bo dwa różne obiekty mogą mieć ten sam stan.

C/ C++ umożliwia pobranie adresu dowolnej zmiennej, ale języki zarządzane już nie.

0

Sprostowanie - najprostsze wczytanie pliku w Javie:

public class Test {
  public static void main(String[] args) throws IOException {
      List<String> lines = Files.readAllLines(Paths.get(args[0]), StandardCharsets.UTF_8);
  }
}
0

Jeszcze dodam, że w Pythonie, w przeciwieństwie do tego co pisałem wcześniej, są metody na prymitywach, np.:
(3).__add__(3) # -> 6
I taka ciekawostka: https://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python#6581949.

1 użytkowników online, w tym zalogowanych: 0, gości: 1