mboost-dp1

Gøre noget simpelt kompliceret


Gå til bund
Gravatar #1 - arne_v
14. jun. 2024 01:29
Initalisering af variable.

C#:


using System;

public class Init
{
private static int v1 = 1;
private static int v2;
private int v3 = 3;
private int v4;
static Init()
{
v2 = 2;
}
public Init()
{
v4 = 4;
}
public Init(int v)
{
v4 = v;
}
public override string ToString()
{
return string.Format("({0},{1},{2},{3})", v1, v2, v3, v4);
}
public static void Main(string[] args)
{
Console.WriteLine(new Init());
Console.WriteLine(new Init(-4));
}
}


100% logisk.

Det er sikkert ikke alle som kendet static constructor, men stadig meget logisk.

Java:


public class Init {
private static int v1 = 1;
private static int v2;
private static int v3;
private int v4 = 4;
private int v5;
private int v6;
private int v7;
static {
v2 = 2;
}
static {
v3 = 3;
}
{
v5 = 5;
}
{
v6 = 6;
}
public Init() {
v7 = 7;
}
public Init(int v) {
v7 = v;
}
@Override
public String toString() {
return String.format("(%d,%d,%d,%d,%d,%d,%d)", v1, v2, v3, v4, v5, v6, v7);
}
public static void main(String[] args) {
System.out.println(new Init());
System.out.println(new Init(-7));
}
}


WTF?

Multiple static initializer blocks som alle bliver kørt.

Multiple initializer blocks som alle bliver kørt uanset hvilken constructor der kaldes.

Hvad er ideen i det????
Gravatar #2 - larsp
18. jun. 2024 07:02
Godt spørgsmål. Jeg forstår ikke hvorfor der er behov for at kunne gøre ting på så mange forskellige måder.

Generelt forstår jeg ikke behovet i OOP sprog for at have så mange syntaktiske features. Er det ikke bedre at have så få features som muligt i sproget, så kode automatisk følger de bedste patterns og kompliceret opførsel er noget man programmerer oven på det, eksplicit, og ikke implicit med diverse uforståelig syntaks ingen kan huske.
Gravatar #3 - arne_v
18. jun. 2024 16:31
#2

Ja - enig.

Kendt citat:

"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away."

Men nogle sprog er bare præget af en "more is better" filosofi. PL/I, Ada95, C++ og Scala er nogen af de værste. Men mange andre sprog er også godt på vej: Java, C#, PHP etc..
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login