Red de conocimiento del abogados - Preguntas y respuestas penales - ¿Por qué se han desarrollado tantos lenguajes de programación?

¿Por qué se han desarrollado tantos lenguajes de programación?

Similitudes entre C# y JAVA: debido a que C# y JAVA se desarrollan en base a C++, tienen muchas similitudes, como se muestra a continuación:

1. Los resultados de la compilación de los lenguajes C# y JAVA son independientes de la computadora y. Lenguajes de programación, archivos ejecutables se pueden ejecutar bajo gestión.

Ejecución en el entorno;

2. Tanto C# como JAVA adoptan mecanismos automáticos de recolección de basura

3. ;

4. Ni C# ni JAVA tienen archivos de encabezado;

5. Tanto C# como JAVA solo admiten herencia única. Para lograr una funcionalidad como la herencia múltiple, se debe implementar a través de interfaces.

6. Las clases se derivan de la clase Object y los objetos de la clase se generan mediante la palabra clave new;

7. Tanto el lenguaje C# como el JAVA admiten subprocesos;< /p >

8. Ni C# ni el lenguaje JAVA tienen variables globales y funciones globales. Todas las variables y funciones pertenecen a una determinada clase.

9. Tanto C# como JAVA admiten una verificación estricta de los límites de matrices y cadenas, y no se producirá ningún desbordamiento de límites.

10. operador en lugar de los operadores " ->" y "::";

11. Tanto C# como JAVA usan null y bool como palabras clave;

12. Lenguajes JAVA Debe inicializarse antes de poder usarse;

13. La declaración If en los lenguajes C# y JAVA no permite el uso de números enteros como condiciones de juicio;

14 Después del bloque de declaración Try en los lenguajes C# y JAVA. Se puede usar con el bloque de declaración finalmente.

La diferencia entre C# y JAVA:

Aunque C# y JAVA tienen muchas similitudes, son independientes entre sí porque son lenguajes de programación de alto nivel desarrollados por dos empresas diferentes. .

Sistema autónomo, cada uno con sus propias características, las diferencias entre C# y JAVA son las siguientes:

1 Propiedades

Para quienes lo usan con frecuencia. Las herramientas de desarrollo rápido como Delphi o Visual Properties son un concepto muy familiar para los desarrolladores básicos.

En términos generales, el valor de un atributo se puede leer a través de getXXX y el valor de un atributo se puede establecer a través de setXXX.

Declaraciones de operación de atributos comunes en JAVA: foo . setsize(foo . getsize()+1); setBold(true);

Declaraciones de operación de atributos comunes en c#: foo size++; font = true;

Obviamente, el método de configuración de atributos anterior es más conciso que JAVA. , más legible. Esto refleja plenamente la simplicidad de C#.

Definición de atributos en JAVA: public int getSize(){ return size;} public void setSize(int value){ size = value;}

C# simplifica la definición de atributos: public int Size { get { return size} set { size = value}}

2. Index

C# proporciona la función de índice para agregar un índice a un objeto, de modo que el objeto pueda Puede usarse como un método de matriz, pero el lenguaje JAVA no admite el índice.

La forma típica de definir un índice en C# es la siguiente:

Historia pública this[int index]

{

Obtener { devolver historias [índice];}

set{

if (valor!=null){

historia[índice]=valor

}

}

3. Delegado: puede considerarse como un puntero de función orientado a objetos y con seguridad de tipos.

C# permite a los delegados acceder a diferentes funciones a través de un nombre, logrando funciones similares a la interfaz en JAVA, pero es más útil que interfaz.

4. Eventos

C# proporciona soporte directo para eventos. Maneja eventos a través de delegados y palabras clave de eventos. La palabra clave event oculta todos los métodos delegados y los operadores "+=" y "-+" permiten a los programadores agregar o eliminar controladores de tiempo libremente.

5.enum: La enumeración se utiliza para especificar una serie de objetos.

C# define y utiliza enumeraciones a través de las siguientes declaraciones:

Definición: dirección de enumeración pública {norte, este, oeste, sur};

Propósito: dirección del muro = dirección. Norte;

JAVA no admite enumeraciones directamente. Si desea implementar una funcionalidad similar a C#, primero debe definir una clase.

Dirección del curso público {

final público estático int NORTE = 1;

final público estático int ESTE =

final público; static int WEST = 3;

public final static int SOUTH = 4;}

Después de definir la clase Dirección, JAVA puede usar la enumeración haciendo referencia al valor en la clase:

int pared=dirección. NOTRH

6. declaración foreach

C# proporciona un bucle for estándar y una declaración foreach (importada de VB) para recorrer los elementos de la colección.

La forma típica en que JAVA atraviesa todos los elementos de una colección es la siguiente:

And (! collection.isEmpty())

{

objeto o = colección . get();

conexión siguiente();

}

C# atraviesa. todos los elementos de la colección Elemento: foreach (objeto o en la colección) {...}

7. Tipos de datos unificados:

La mayoría de los lenguajes de programación de alto nivel tienen datos básicos. tipos de datos, como números enteros y tipos de punto flotante. Al mismo tiempo, para satisfacer mejor las necesidades reales, los diferentes tipos de datos tienen diferentes métodos de procesamiento. Obviamente, si el procesamiento de tipos de datos simples se puede combinar con el procesamiento de tipos de datos complejos y procesarlos de manera consistente, sin duda mejorará en gran medida la eficiencia del diseño de la aplicación y mejorará la flexibilidad del diseño del programa.

El lenguaje JAVA también adopta la estrategia de procesar tipos de datos básicos por separado, pero proporciona una serie de clases que encapsulan estos tipos de datos básicos en función de los tipos de datos básicos. Por ejemplo, la clase encapsula Integer. Precisión entera y doble El punto flotante está encapsulado por la clase double.

C# proporciona una manera de lograr la unificación de tipos de datos que es diferente de JAVA. De hecho, en C#, incluso un tipo de datos simple como int se implementa a través de Int32, una estructura dentro de C#. En C#, puedes pensar en int simplemente como un alias para la estructura Int32. Dado que las estructuras en C# también se heredan de los objetos de clase, cada estructura también tiene métodos definidos en la clase Objeto, por lo que los números enteros se pueden manipular en C# de las siguientes maneras: int I = 5; console . WriteLine(I . ToString());

8. Sobrecarga de operadores

La sobrecarga de operadores puede operar varios tipos de datos de una manera más natural, mejorando así en gran medida la legibilidad del programa. Sexo y flexibilidad. El operador "==" en C# se define en la clase Objeto. El operador == definido en Objeto obtiene el resultado final comparando las referencias de dos valores. Si hay una clase relacionada con la colección, la interfaz ICompar debe implementarse en dicha clase. Esta interfaz define un método CompareTo, que devuelve el resultado de la comparación de dos objetos. Sobre esta base, se pueden definir aún más los operadores que implementan la comparación, como

>, =, <=, etc. De hecho, los tipos numéricos (int, long, etc.) pueden usar estos operadores de comparación directamente y todos implementan la interfaz ICompare internamente.

9. Polimorfismo

Los métodos virtuales proporcionan tecnología polimórfica. Polimorfismo significa que una clase derivada puede definir un método con el mismo nombre que la clase base. Aunque tanto JAVA como C# admiten polimorfismo, los métodos de implementación específicos siguen siendo diferentes.

En el lenguaje JAVA, por defecto, los objetos de la clase base pueden llamar directamente a métodos virtuales en la clase derivada. En el lenguaje C#, la clase base debe llamar al método virtual en la clase derivada mediante la palabra clave virtual. Al mismo tiempo, en el lenguaje C#, si un método anula un método con el mismo nombre en la clase base, debe implementarse mediante la palabra clave override. Un programa típico para implementar polimorfismo en C# es el siguiente:

Clase B {public virtual void foo{}}

Clase D:B { public overrided void foo(){ } }

Lo anterior compara brevemente las similitudes y diferencias entre C# y JAVA. De hecho, la comparación entre ambos va mucho más allá de lo anterior. Aprender bien estos dos idiomas requiere mucho trabajo práctico para diferenciarlos en la práctica.