¿Cuál es la diferencia entre una clase y una cadena en informática?

Una cadena es un tipo de datos que, más esencialmente, es una matriz de caracteres. A menudo expone más funcionalidad basada en texto que una matriz antigua simple.

La clase puede tener varios significados en todos los idiomas.

Trataré de proporcionar los conceptos básicos que se aplican con mayor frecuencia.

  1. Casi siempre sirve como definición para una colección compleja y heterogénea de otros tipos de datos, como una estructura en C.
  • Ejemplo: suponga que en C desea definir un tipo de datos que contenga una cadena con el nombre de un cliente y un número entero con la edad del cliente, haría algo como:

cliente estructura
{
int edad;
nombre del personaje;
}

  • Ahora suponga que desea definir una variable llamada favorita del nuevo tipo que definió (cliente)

// …
favorito del cliente;
favourite.age = 20;
favorite.name = “Elizabeth”;

Una clase casi siempre sirve al menos para este propósito .

2. Una clase casi siempre agrega métodos que se pueden realizar en los datos junto con formas de restringir el acceso a los datos definidos. Supongamos que una vez que definió a su cliente en su tipo de datos, quería restringir que el usuario de la clase pudiera establecer la edad en un valor negativo o cambiar el nombre del cliente; los modificadores de acceso le permiten hacerlo.

Considere la siguiente clase de cliente de C #:

cliente de clase
{
// Al igual que C, usted define los datos que las variables de tipo cliente
// están definidos para almacenar. A diferencia de C, hace que los datos sean privados
// para que el tipo de datos solo se pueda usar de la manera prevista
cadena privada de solo lectura _name;
int privado _age;

public int Age
{
obtener {return _age;}
conjunto
{
if (valor <0)
lanzar nuevo ArgumentOutOfRangeException ();
más
_age = valor;
}
}

cadena pública Name => _name; // Solo puedes mirar el nombre, no cambiarlo

// Este constructor permite al usuario de este
// código para crear una nueva variable de tipo cliente
// y les exige que establezcan un nombre de texto válido
// y una edad no negativa. Si suministra datos incorrectos
// habrá un error y no podrán
// para crear la variable Cliente.
Cliente público (nombre de cadena, edad int)
{
if (string.IsNullOrWhitespace (nombre))
lanzar nuevo ArgumentException ();
si (edad <0)
lanzar nuevo ArgumentOutOfRangeException ();

_name = nombre;
_age = edad;
}
}

El comienzo de la sabiduría en la programación orientada a objetos reconoce el genio de permitir la creación de estructuras de datos heterogéneas, pero a través del acceso a ellas desde el mundo exterior: la recuperación y el establecimiento de valores deben hacerse a través de un código llamado métodos o propiedades . El hecho de que la única forma de acceder o cambiar el subyacente es a través de métodos definidos en su clase (marcado como público) asegura que el código no se use incorrectamente.

Ciertamente, hay mucho más en las clases que la definición del tipo de datos y la restricción de acceso (encapsulación), pero diría que estas son las claves clave para comprender las clases. Los temas más avanzados incluyen el polimorfismo y la herencia, pero realmente necesita comprender la encapsulación antes de que nada de eso se vuelva oportuno o útil.

Una clase es una plantilla para un objeto, que proporciona variables y métodos para representar el estado y las acciones en el objeto.

Una cadena suele ser solo un tipo de datos que es una secuencia de caracteres.

Sin embargo, y para no confundirlo, en algunos idiomas el tipo de datos de cadena es en realidad una clase. Este es el caso de Java, por ejemplo, donde todo es una clase. Sin embargo, esto no significa que una cadena deba ser una clase, solo se implementa de esa manera en dichos lenguajes.

La clase String es un tipo de clase utilizada para crear y definir cadenas (agrupaciones de caracteres). Una clase define qué objeto creará y qué propiedades tiene dicho objeto, etc.

Una “cadena” es una secuencia de letras y números: “¡Hola Mundo!” – es una “cadena”, por lo que es “$% # @ # @% ^% ^” o “99 botellas de cerveza”.

Una “clase” es una colección de elementos separados que pertenecen juntos, y a menudo puede incluir algunas funciones para operar en esos elementos.

Entonces, por ejemplo, si estuviera escribiendo software para implementar una “Libreta de direcciones”, podría tener un elemento de “clase” para una dirección que contiene el nombre de la persona (que probablemente sería una cadena), su dirección (probablemente otra cadena) y su número de teléfono (tal vez un número entero largo) y tal vez un booleano que dice si esta persona está en su lista de “amigos” o algo así.

Esa recopilación de datos también podría tener algunas funciones que son “miembros” de la clase que le permiten marcar el número de teléfono o editar la información de la persona.

Por lo tanto, una “clase” puede contener algunas cadenas (o tal vez no).

Lo que puede ser un poco confuso es que una cadena podría (en algunos idiomas y en algunas situaciones) implementarse como una “clase”. Pero las cadenas clásicas del lenguaje C son solo una matriz con un byte cero que marca el final de la cadena.

More Interesting

¿Cuáles son los exámenes (como GATE, CAT, etc.) que un estudiante graduado de CS puede tomar por varias razones en su último año?

Qué ingeniería es mejor. Ingeniería informática o Electrónica e Instrumentación?

Cómo comenzar desde cero para convertirse en ingeniero informático

Al aprender Elixir, ¿con qué orden de libros comenzaste?

¿A qué canales de YouTube debe suscribirse un estudiante de CSE?

¿Cuál es la diferencia entre la ingeniería informática y la informática y puede un ingeniero informático hacer el trabajo de un científico informático?

¿Necesito programación competitiva para ser bueno en programación e ingeniería informática?

¿Qué debería preferir aprender si soy de la secuencia ECE: sistema embebido o diseño VLSI o MATLAB? ¿Cuál es digno y más utilizado hoy en día?

¿Cuál es la mejor manera de aprender el funcionamiento interno completo de una computadora?

¿Es VLIS en CMU o SRE en Google London una mejor opción de carrera?

Entre la ingeniería informática y la ingeniería de software, ¿qué carrera tiene más dinero?

¿Qué propuesta de proyecto de tesis fácil de hacer pero útil y única puede sugerir en un curso de ingeniería informática?

Acabo de ser admitido en Purdue for Computer Science y ahora quiero cambiar mi especialidad a Computer Engineering. ¿Cómo lo hago?

¿Qué es mejor, IIIT-H o IIT (Los 6 mejores) para la ingeniería informática?

¿Cómo puede una computadora manejar Internet con una velocidad de gigabits por segundo (10 ^ 9 bits por segundo) o incluso más rápido cuando una computadora solo puede realizar 10 ^ 8 operaciones por segundo?