martes, 5 de julio de 2016

¿QUE ES LA PROGRAMACIÓN ORIENTADA A OBJETOS?

La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, que conviene conocer y estudiar antes de nada. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos.
Es muy importante destacar que cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación. La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido empleando lo que llamamos programación estructurada, que consiste en descomponer el problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles de codificar. Se trata de descomponer el problema en acciones, en verbos. En el ejemplo de un programa que resuelva ecuaciones de segundo grado, descomponíamos el problema en las siguientes acciones: primero, pedir el valor de los coeficientes a, b y c; después, calcular el valor del discriminante; y por último, en función del signo del discriminante, calcular ninguna, una o dos raíces. Como podemos ver, descomponíamos el problema en acciones, en verbos; por ejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular… La programación orientada a objetos es otra forma de descomponer problemas.
Este nuevo método de descomposición es la descomposición en objetos; vamos a fijarnos no en lo que hay que hacer en el problema, sino en cuál es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa. Los lenguajes de programación tradicionales no orientados a objetos, como C, Pascal o BASIC, basan su funcionamiento en el concepto de procedimiento o función. Una función es simplemente, un conjunto de instrucciones que operan sobre unos argumentos y producen un resultado. De este modo, un programa no es más que una sucesión de llamadas a funciones, ya sean éstas del sistema operativo, proporcionadas por el propio lenguaje, o desarrolladas por el mismo usuario. 3 En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento básico no es la función, sino un ente denominado precisamente objeto.
Un objeto es la representación en un programa de un concepto, y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. La programación orientada a objetos es una nueva forma de pensar, una manera distinta de enfocar los problemas. Ahí radica la dificultad de aprender un lenguaje totalmente orientado a objetos, como es Java, sin conocer previamente los pilares de la programación orientada a objetos. Hecha esta importante aclaración, conviene destacar que Java, más que un lenguaje orientado a objetos, es un lenguaje de objetos.

Objeto

La programación orientada a objetos consiste en ordenar datos en conjuntos modulares de elementos de información del mundo real (denominado un dominio). Estos elementos de datos se llaman objetos. Estos datos se agrupan de acuerdo a las características principales del mundo real de estos elementos (tamaño, color, etc.).
El enfoque de objetos es una idea que se ha probado con creces. Simula fue el primer lenguaje de programación en implementar el concepto de clases en 1967. En 1976, Smalltalk implementó los conceptos de encapsulación, agrupación y herencia (los conceptos principales de la programación orientada a objetos). Por otra parte, se han implementado varios lenguajes de programación orientada a objetos a escala global (Eiffel, Objective C, Loops, etc.).
La dificultad que presenta este enfoque es la creación de una representación abstracta, en forma de objetos, de entidades que realmente existen (perro, auto, lámpara eléctrica...) o que existen virtualmente (seguridad social, clima...).
Un objeto se caracteriza por varios conceptos:
Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos relacionados al estado de un objeto.
Métodos (usualmente llamados funciones de miembro): Los métodos de un objeto caracterizan su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto puede realizar por sí mismo. Estas operaciones hacen posible que el objeto responda a las solicitudes externas (o que actúe sobre otros objetos). Además, las operaciones están estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los valores de un atributo.
Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su estado. Por lo general, esta identidad se crea mediante un identificador que deriva naturalmente de un problema (por ejemplo: un producto puede estar representado por un código, un automóvil, por un número de modelo, etc.).

Clase

En informática, una clase es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje. Cada clase es un modelo que define un conjunto de variables -el estado, y métodos apropiados para operar con dichos datos -el comportamiento. Cada objeto creado a partir de la clase se denomina instancia de la clase.
Las clases son un pilar fundamental de la programación orientada a objetos. Permiten abstraer los datos y sus operaciones asociadas al modo de una caja negra. Los lenguajes de programación que soportan clases difieren sutilmente en su soporte para diversas características relacionadas con clases. La mayoría soportan diversas formas de herencia. Muchos lenguajes también soportan características para proporcionar encapsulación, como especificadores de acceso.
Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase.


Herencia

La herencia es la transmisión del código entre unas clases y otras. Para soportar un mecanismo de herencia tenemos dos clases: la clase padre y la/s clase/s hija/s. La clase padre es la que transmite su código a las clases hijas. En muchos lenguajes de programación se declara la herencia con la palabra "extends".
class Hija extends Padre{ }
Eso quiere decir que todo el código de la clase padre se transmite, tal cual, a la clase hija. Si lo quieres ver así, es como si tuvieras escrito, línea a línea, todo el código de la class "Padre" dentrode las llaves de la class "Hija". Por eso, la herencia es fundamental para reutilizar código, porque no necesitas volver a incorporar el código de Padre en Hija, sino que realmente al hacer el "extends" es como si ya estuviera ahí.

Ejemplo de herencia

Volvamos a los animales, pensemos en los mamíferos. Todos tienen una serie de características, como meses de gestación en la barriga de la madre, pechos en las hembras para amamantar y luego funcionalidades como dar a luz, mamar, etc. Eso quiere decir que cuando realices la clase perro vas a tener que implementar esos atributos y métodos, igual que la clase vaca, cerdo, humano, etc.
¿Te parecería bien reescribir todo ese código común en todos los tipos de mamíferos, o prefieres heredarlo? en este esquema tendríamos una clase mamífero que nos define atributos como numero_mamas, meses_gestacion y métodos como dar_a_luz(), mamar(). Luego tendrías la clase perro que extiende (hereda) el código del mamífero, así como las vacas, que también heredan de mamífero y cualquiera de los otros animales de esta clasificación.
Otro ejemplo, tenemos alumnos universitarios. Algunos son alumnos normales, otros Erasmus y otros becarios. Probablemente tendremos una clase Alumno con una serie de métodos como asistir_a_clase(), hacer_examen() etc., que son comunes a todos los alumnos, pero hay operaciones que son diferentes en cada tipo de alumno como pagar_mensualidad() (los becarios no pagan) o matricularse() (los Erasmus que son estudiantes de intercambio, se matriculan en su universidad de origen).
Lo que debes observar es que con la herencia siempre consigues clases hijas que son una especialización de la clase padre. Para saber si está correcto emplear herencia entre unas clases y otras, plantéate la pregunta ¿CLASE HIJA es un CLASE PADRE? (por ejemplo, ¿un perro es un mamífero? ¿Un becario es un alumno de universidad?)

Nota: Existen otros modos de decir clases hija, como clase heredada, clase derivada, etc.

Programación Dirigida por Evento

La programación dirigida por eventos es un paradigma de la programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.


Para entender la programación dirigida por eventos, podemos oponerla a lo que no es: mientras en la programación secuencial (o estructurada) es el programador el que define cuál va a ser el flujo del programa, en la programación dirigida por eventos será el propio usuario —o lo que sea que esté accionando el programa— el que dirija el flujo del programa. Aunque en la programación secuencial puede haber intervención de un agente externo al programa, estas intervenciones ocurrirán cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programación dirigida por eventos.
El creador de un programa dirigido por eventos debe definir los eventos que manejarán su programa y las acciones que se realizarán al producirse cada uno de ellos, lo que se conoce como el administrador del evento. Los eventos soportados estarán determinados por el lenguaje de programación utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador.
En la programación dirigida por eventos, al comenzar la ejecución del programa se llevarán a cabo las inicializaciones y demás código inicial y a continuación el programa quedará bloqueado hasta que se produzca algún evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasará a ejecutar el código del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho click en el botón de play de un reproductor de películas, se ejecutará el código del administrador de evento, que será el que haga que la película se muestre por pantalla.
Un ejemplo claro lo tenemos en los sistemas de programación Lexico y Visual Basic, en los que a cada elemento del programa (objetos, controles, etcétera) se le asignan una serie de eventos que generará dicho elemento, como la pulsación de un botón del ratón sobre él o el redibujado del control.
La programación dirigida por eventos es la base de lo que llamamos interfaz de usuario, aunque puede emplearse también para desarrollar interfaces entre componentes de Software o módulos de núcleos.
En los primeros tiempos de la computación, los programas eran secuenciales, también llamados Batch. Un programa secuencial arranca, lee parámetros de entrada, procesa estos parámetros, y produce un resultado, todo de manera lineal y sin intervención del usuario mientras se ejecuta.

Visual Basic

Concepto:
Es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programació
n es un dialecto de BASIC, con importantes agregados.
Actualmente, los programas creados en Visual Basic sólo funcionan en Windows. La aplicación Visual Basic, permite crear ventanas, botones, menús, etc. de forma sencilla con solo arrastrar y soltar los elementos. Luego se pueden definir las apariencias, posiciones y comportamientos tanto de forma visual como utilizando códigos de programación. Visual Basic suele considerarse un sistema RAD (Rapid Application Development), porque permite crear aplicaciones de forma rápida, especialmente para prototipos.



Características:

Podríamos decir que Visual Basic es un lenguaje orientado a eventos. En las aplicaciones tradicionales o "por procedimientos", la aplicación es la que controla qué partes de código y en qué secuencia se ejecutan. La ejecución comienza con la primera línea de código y continúa con una ruta predefinida a través de la aplicación, llamando a los procedimientos según se necesiten.
En una aplicación controlada por eventos, el código no sigue una ruta predeterminada; ejecuta distintas secciones de código como respuesta a los eventos. Los eventos pueden desencadenarse por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o incluso por la propia aplicación. La secuencia de estos eventos determina la secuencia en la que se ejecuta el código, por lo que la ruta a través del código de la aplicación es diferente cada vez que se ejecuta el programa.
Para manejar los objetos y controles del lenguaje hay que conocer tres conceptos asociados a ellos:
  • Propiedades: Para todos los objetos y controles, hay definidas una serie de propiedades que nos permiten controlarlos: nombre, tamaño, color, posición, etc..., la mayoría de las propiedades serán comunes, pero evidentemente, habrá objetos que tengan unas determinadas propiedades específicas.
  • Eventos: Cada objeto lleva asociados unos determinados eventos que le pueden ocurrir, por ejemplo a un botón, le puede ocurrir que el usuario pulse con el botón principal del ratón sobre él, eso es el evento NombreDelBotón_Click(), bien cuando esto ocurra, se dispara este evento, al cual nosotros le añadiremos el código de lo que queremos que haga la aplicación cuando el usuario pulse el botón.
  • Métodos: Son procedimientos asociados a un objeto, es decir, nos permiten realizar acciones como por ejemplo escribir un texto en un objeto, necesitaríamos usar el métodoPrint, con la siguiente sintaxis: NombreDelObjeto.Print "Texto deseado".

Ejemplo:

Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un entero que indica el botón utilizado.


Public Function MsgBox( _
  ByVal Prompt As Object, _
  Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _
  Optional ByVal Title As Object = Nothing _
) As MsgBoxResult

JavaScript

JavaScript® (a veces abreviado como JS) es un lenguaje ligero e interpretado, orientado a objetos con  funciones de primera clase, más conocido como el lenguaje de script para páginas web, pero también usado en muchos entornos sin navegador, tales como   node.js o Apache CouchDB. Es un lenguaje script multi-paradigma, basado en prototipos,  dinámico, soporta estilos de programación funcional, orientada a objetos e imperativa. Leer más sobre JavaScript. El estándar de JavaScript es ECMAScript. Desde el 2012, todos los navegadores modernos soportan completamente ECMAScript 5.1. Los navegadores más antiguos soportan por lo menos ECMAScript 3. La sexta edición se liberó en Julio. Se puede seguir el progreso actual de las diferentes, nuevas y mejoradas características en la correspondiente wiki.
Características:
  • Es simple, no hace falta tener conocimientos de programación para poder hacer un programa en JavaScript.
  • Maneja objetos dentro de nuestra página Web y sobre ese objeto podemos definir diferentes eventos. Dichos objetos facilitan la programacion de paginas interactivas, a la vez que se evita la posibilidad de ejecutar comandos que puedan ser peligrosos para la maquina del usuario, tales como formateo de unidades, modificar archivos etc.
  • Es dinámico, responde a eventos en tiempo real. Eventos como presionar un botón, pasar el puntero del mouse sobre un determinado texto o el simple hecho de cargar la página o caducar un tiempo. Con esto podemos cambiar totalmente el aspecto de nuestra página al gusto del usuario, evitándonos tener en el servidor un página para cada gusto, hacer calculos en base a variables cuyo valor es determinado por el usuario, etc.

Visual C++

Visual C++. También conocido como MSVC, Microsoft Visual C++, es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Esta especialmente diseñado para el desarrollo y depuración de código escrito para las API's de Microsoft Windows, DirectX y la tecnologíaMicrosoft .NET Framework.

Características

Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o simplemente MFC), el cual es un conjunto de clases C++para el desarrollo de aplicaciones en Windows.
El IDE cuenta con herramientas como el IntelliSense, RemoteDebuging, Editar y Continuar, y Texto Resaltado.
Cuenta con una versión Express, llamada Microsoft Visual C++ Express Edition, la cual es gratuita y se puede descargar desde el sitio de Microsoft.
El lenguaje de programación utilizado por esta herramienta, de igual nombre, está basado en C++ y es compatible en la mayor parte de su código con este lenguaje, a la vez que su sintaxis es exactamente igual. En algunas ocasiones esta incompatibilidad impide que otros compiladores, sobre todo en otros sistemas operativos, funcionen bien con código desarrollado en este lenguaje.
Algunas de las nuevas implementaciones es que el llamado código administrado (managed code), hace uso de una de las mejores herramientas dentro de.NET, el recolector de basura (garbage collector).

Entorno a Visual C++

Windows es el entorno más popular de interfaz gráfico de usuario (GUI). Desde este punto de vista, Windows es un entorno multitarea basado en ventanas, que representan programas, y que permite ejecución concurrente.
Para desarrollar programas, Windows provee una librería de rutinas y funciones (SDK - Kit de desarrollo de software) que permiten gestionar componentes como menús, diálogos, ventanas.
Visual C++ es un entorno integrado de desarrollo que permite la programación orientada a objetos (POO) conjuntamente con el sistema de desarrollo SDK (también denominado API) de Windows. Al ser un entorno integrado Visual C++ incluye, entre otras, las siguientes herramientas de desarrollo:
  • Editor de texto
  • Compilador/Enlazador
  • Depurador
  • Visor de datos y dependencias (Browser)
Pero si desde el punto de vista del usuario Windows es un sistema amigable, desde el punto de vista del desarrollador se observa todo lo contrario. El SDK de Windows no es mas que un complejo conjunto de funciones que añade además numerosas definiciones de tipos de datos nuevos para cualquier programador de C/C++ para DOS. Para solucionar este problema, Visual C++ incluye la librería de clases MFC (Microsoft Foundation Classes) que permite crear y gestionar de manera intuitiva componentes típicos de Windows. Esto es, la MFC es una implementación que utiliza el API encapsulando todas las estructuras y llamadas a funciones en objetos fáciles de utilizar. Basándose en la potencia de la MFC, Visual C++ se convierte en un generador de programas C++ para Windows.
El objetivo del presente curso es conocer el modelo de programación para Windows basado en la librería de clases MFC. En este documento se destacarán ideas, conceptos y tratamientos generales, en ningún momento pretende ser un manual completo de programación con MFC.
Como todos sabemos, "C" es un lenguaje de alto nivel, basado en funciones, que permite desarrollos estructurados. Entre otras muchas características contempla la definición de estructuras de datos, recursividad o indirecciones a datos o código (punteros).
"C ++", por su parte, es un superconjunto de "C", al que recubre con una capa de soporte a la POO. Permite por tanto la definición, creación y manipulación de objetos.

Lo nuevo en Visual C++

En Visual C++ 2005, se ha ampliado el lenguaje Visual C++ para que incluya compatibilidad con el desarrollo de componentes y aplicaciones que se ejecutan en un equipo virtual con recolección automática de elementos no utilizados. Estas incorporaciones han sido aprobadas por el comité para el estándar de C++/CLI. Visual C++ 2005 admite como destino Common Language Runtime (CLR) de .NET Framework, la implementación de Microsoft de un equipo virtual con recolección de elementos no utilizados, pero también se puede utilizar como destino de cualquier plataforma que cumpla con el estándar CLI.La sintaxis Visual C++ admitida en Visual C++ 2005 para la programación en .NET es ahora mucho más natural que la sintaxis de las Extensiones administradas para C++ introducida en Microsoft Visual C++ .NET 2003. Las Extensiones administradas para C++ se siguen admitiendo, pero se han dejado de utilizar en favor de la nueva sintaxis. Para obtener más información, vea New C++ Language Features.
Hay también numerosas funciones nuevas para la programación nativa, incluso arquitecturas del procesador de 64 bits de destino, nuevas funciones de biblioteca con seguridad mejorada y mucho más.


Visual Basic. NET

Concepto:
Es un proyecto de Microsoft para crear una nueva plataforma de desarrollo de software con énfasis en transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.

Características:
Es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el framework.NET que facilita el desarrollo de aplicaciones informáticas.
Se presenta el entorno de desarrollo integrado de Visual Studio.NET,  que consta de un completo editor de código y muchas herramientas que facilitan el desarrollo, programación y depuración de aplicaciones informáticas facilita el entendimiento de conceptos básicos de programación, como operadores, desbordamiento, conversión implícita y explícita, expresiones lógicas

Ejemplo:

Ahora haremos el típico "hola mundo"
Asi que le damos doble clic en el button, y automáticamente saldrá la parte de código:

Esto nos sale en la parte del código:
Código:
Private Sub CMB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB.Click

Nos aparece el nombre que nosotros "creamos": CMB y hace el evento Clic, ósea cada vez que demos Clic sobre el botón (CMB) se ejecutara el código que esta entre:
Código:
Private Sub CMB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB.Click
End sub

Ahora dirás ¿como hacemos nuestro mensaje "Hola mundo"?
Poned esto así:
Código:
Private Sub CMB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB.Click
MessageBox.Show ("Hola Mundo")
End sub

Analicemos y explico un poco esto:
Código:
MessageBox.Show ("Hola Mundo")

Este método nos permite mostrar Mensajes
Messagebox es caja de texto o caja de mensaje
.show: Nos muestra el mensaje "hola mundo"

Visual C#

Concepto:


Microsoft Visual C# 2005 es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con seguridad de tipos y orientado a objetos. Con sus diversas innovaciones, C# permite desarrollar aplicaciones rápidamente y mantiene la expresividad y elegancia de los lenguajes de tipo C.
Visual Studio admite Visual C# con un editor de código completo, plantillas de proyecto, diseñadores, asistentes para código, un depurador eficaz y fácil de usar, además de otras herramientas. La biblioteca de clases .NET Framework ofrece acceso a una amplia gama de servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que aceleran el ciclo de desarrollo de manera significativa.


Características:


C# es un lenguaje de programación simple pero eficaz, diseñado para escribir aplicaciones empresariales.
El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las características de C++ en las áreas de instrucciones, expresiones y operadores.
C# presenta considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).
C# proporciona acceso a los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.


Ejemplo:


El siguiente programa de consola es la versión de C# del tradicional programa "Hello World!", el cual muestra en pantalla la cadena Hello World!.


// A "Hello World!" program in C#
class Hello
{
  static void Main()
  {
     System.Console.WriteLine("Hello World!");
  }
}

Comentarios

La primera línea contiene un comentario:


// A "Hello World!" program in C#
Los caracteres // convierten el resto de la línea en un comentario.

El método Main

Cualquier programa en C# debe contener un método Main, en el cual se inicia y se termina la ejecución. Este método es donde se crean objetos y se ejecutan otros métodos.
El método Main es un método estático que reside dentro de una clase o una estructura. En el ejemplo de "Hello World!", se encuentra dentro de la clase Hello. Declare el método Main de una de las maneras siguientes:


Puede devolver void:


static void Main()
{
...
}
También puede devolver un valor de tipo int:


static int Main()
{
...
  return 0;
}

Entrada y salida

Los programas de C# utilizan normalmente los servicios de entrada y salida que ofrece la biblioteca de tiempo de ejecución de .NET Framework. En la instrucciónSystem.Console.WriteLine("Hello World!"); se utiliza el método WriteLine, uno de los métodos de salida de la clase Console de la biblioteca de tiempo de ejecución. Muestra el parámetro cadena en la secuencia de salida estándar seguido por una nueva línea.

Visual J#

Concepto:
Visual J# permite a los desarrolladores utilizar la sintaxis del lenguaje Java para generar aplicaciones y servicios que se ejecutarán en .NET Framework. Visual J# integra la sintaxis de Java en el entorno de desarrollo integrado (IDE) de Visual Studio®. No es una herramienta para desarrollar aplicaciones que se ejecuten en una máquina virtual de Java.

Características:

Visual J# tiene como destino de compilación el Common Language Runtime (CLR) y puede usarse para programar aplicaciones para .NET Framework, incluidos los servicios Web XML y las aplicaciones Web, que aprovechen al máximo la funcionalidad de .NET Framework. Las aplicaciones de Visual J# se benefician de:
·         Integración entre lenguajes.
·         Seguridad mejorada.
·         Compatibilidad con el control de versiones y la implementación.
·         Servicios de depuración y generación de perfiles.

Ejemplo:

La aplicación Hello World se ve muy parecida a la aplicación de Java. La única diferencia es el usode. NET Framework (System.Console.WriteLine) en lugar de la típica System.out.println Java. Java soporta la noción de espacios de nombres a través de paquetes, y que se ha incorporado en J #para los espacios de nombres de. NET. Además, Java proporciona la capacidad de utilizar las bibliotecas de clases externos con la palabra clave de importación. Esto también se ha utilizado con J # también.




package hks;
import System.*;
public class HelloWorld
{
 public static void main()
 {
   Console.WriteLine("Hello World in J#");
 }