Documente Academic
Documente Profesional
Documente Cultură
Estructurado
Procedimientos variables y funciones
Parmetros (valor, referencia)
Orientado a Objetos
Clases, objetos, mtodos y atributos
Mensajes, eventos respuestas
En 1990, Sun Microsystems, de California, James Gosling, cre este LP para el control de los aparatos Electrnicos del hogar (Tostadores, hornos de microondas y TV).
Java trata de conseguir tanto la eficiencia de los lenguajes compilados como la universalidad de los lenguajes interpretados.
Java
Pero esto implicaba la prdida de universalidad de las aplicaciones, pues la generacin de cdigo mquina para un ordenador particular hace necesario adaptar y recompilar las aplicaciones para cada plataforma existente, y para todas las futuras. De modo que se integraron las dos filosofas.
JAVA
El resultado de la compilacin no es un conjunto de instrucciones comprensibles por un cierto microprocesador, sino una representacin binaria genrica, llamada byte codes.
Sencillez. Java es un lenguaje de gran facilidad de aprendizaje, pues en su concepcin se eliminaron todos aquellos elementos que no se consideraron absolutamente necesarios.
Orientacin a objetos. Aunque C++ es tambin, como Java, un lenguaje orientado a objetos, la diferencia fundamental es que Java lo es desde su concepcin.
Seguridad. En general, se considera que un lenguaje es tanto ms seguro cuanto menor es la posibilidad de que errores en la programacin, o diseos malintencionados de programas (virus), causen daos en el
Las pginas Web se disean con independencia de plataforma al igual que Java, esto para ser posible ver una pgina Web en una PC IBM, en una Macintosh o en una Sun Micrisystems.
Web y Java
Se puede definir como POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin.
Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO.
En un esquema O.O. el coche sera el objeto, las propiedades seran las caractersticas como el color o el modelo y los mtodos seran las funcionalidades asociadas como ponerse en marcha o parar.
Los principios de la definicin de objetos Los LP tales como (Pascal, Basic, C) se basan en acciones (verbos), en lugar de cosas u objetos (sustantivos).
Con gran frecuencia los programadores deben comenzar de nuevo cada nuevo proyecto y escribir cdigo similar desde cero. Esto significa gasto de tiempo y dinero, ya que la gente debe de reinventar la rueda.
Mediante la Tecnologa orientada Objetos, las entidades creadas llamadas CLASES, si se disean apropiadamente, pueden ser reutilizables en proyectos futuros.
Los principios de la definicin de objetos entidad del mundo En POO los objetos pueden se cualquier
real: - Objetos fsicos * automviles en una simulacin de trfico * aviones en un sistema de control de trfico areo * animales mamferos, etc - Elementos de interfaces grficos de usuarios * ventanas * iconos * mens * ratones
Atributos
Algunas cosas no son objetos, sino atributos, valores o caractersticas de objetos. Es decir, no todas las cosas son objetos, ni son consideradas normalmente como objetos.
El objeto coche
Para la discusin sobre objetos, se va a retomar el ejemplo de la introduccin y utilizar la definicin de coche (automvil) para definir algunos conceptos.
El objeto coche
Para definir el objeto coche, hay que ser capaces de abstraer las funciones y atributos de un coche; es decir, hay que ser capaz de definir coche en trminos de qu puede hacer y qu caractersticas lo distinguen de otros objetos.
Abstraccin de datos De forma semejante a la anterior, un coche tiene las siguientes caractersticas o atributos:
Color Velocidad Tamao Combustible
Encapsulacin de Objetos
Los objetos encapsulan sus operaciones y su estado, son islas de estado y comportamiento.
El comportamiento del objeto est definido por las operaciones El estado est definido por los datos o atributos del objeto
Encapsulacin de Objetos
Abstraccin de datos
.Tamao .Capacidad de pasajeros, en asientos .cabina de control Alas piloto Turbinas Tren de aterrizaje Combustible(Turzinc)
.realizar/recibir Llamas Finalizar llamada(colgar) .enviar/recibir msn .encender/apagar .Cargar .Jugar Hora, Alarma, cronometro Agenda(inserta, elimina, busca registros) Fecha(calendario)
.tamao .teclado/touch .Color .Pila/bateria Pantalla/Display Modelo Bocina/Microfono Memoria interna Tipo de red/seal No. De pin/IMEI/ID
Abstraccin de datos
Abstraccin de datos
Encapsulacin
Encapsulacin: Describe la vinculacin de unas operaciones y estado a un objeto particular. La encapsulacin est ntimamente relacionada con la ocultacin de la informacin, definiendo qu partes de un objeto son visibles y qu partes estn ocultas.
Encapsulacin
Definicin de Objetos
Miembros Pblicos Los miembros pblicos (interfaz o mtodos) de una clase describen qu es lo que pueden hacer los objetos de esa clase.
Definicin de Objetos
Miembros Privados Los miembros privados de una clase describen la implementacin, el cmo lo hace.
Partes privadas: La implementacin Cmo hace lo que hace Detrs de la barrera de encapsulacin
Clases
Las clases representan el tipo al que pertenecen los objetos. Definen tanto los miembros operaciones como el estado, especificando cules son pblicos y cules privados.
Interacciones entre Objetos Los objetos contribuyen al comportamiento del sistema colaborando con otros objetos. Por ejemplo: El volante interacciona con el objeto intermitente El objeto acelerador interacciona con el objeto motor
Intercambio de Mensajes
Los objetos interaccionan envindose mensajes unos a otros. El mtodo de envo de mensajes depende de la naturaleza de los objetos modelados. Los objetos interaccionan por paso de mensajes
Intercambio de Mensajes
Un objeto enva un mensaje a otro El otro puede contestar, cambiar su estado, o reaccionar de la manera apropiada Los objetos slo pueden interaccionar a travs de su interfaz pblica.
Intercambio de Mensajes
HERENCIA
Herencia
La herencia significa que el comportamiento y los datos asociados con las clases hijas son siempre una extensin (es decir, un conjunto estrictamente mas grande) de las propiedades asociadas con las clases paternas.
Herencia Una subclase debe reunir todas las propiedades de la clase paterna y otras ms. Por otra parte ya que una clase hija es una forma especializada (restringida) de la clase paterna en cierto sentido es una contraccin del tipo paterno.
Herencia
Semejante contraposicin entre herencia como expansin y herencia como contraccin es fuente de mucha de la fuerza inherente a la tcnica, pero al mismo tiempo origina mucha de la confusin en lo que toca a su uso.
Herencia
Cuando una clase deriva de otra, hereda todas sus variables y mtodos. Estas funciones y variables miembro pueden ser redefinidas (overridden) en la clase derivada o aadir nuevas variables y mtodos. En cierta forma es como si la sub-clase (la clase derivada) contuviera un objeto de la super-clase; en realidad lo ampla con nuevas variables y mtodos.
Herencia
Herencia
Indica que se pueden definir nuevas clases solamente a partir de una clase inicial
HERENCIA MULTIPLE
Indica que se pueden definir nuevas clases a partir de dos o ms clases iniciales
Una clase tiene un solo ascendente o dicho de otro modo, una subclase puede heredar datos y mtodos de una solo clase.
JAVA
Variables
Las variables se utilizan en la programacin Java para almacenar datos que varan durante la ejecucin del programa.
Variables
Para usar una variable, hay que indicarle al compilador el tipo y nombre de esa variable, declaracin de la variable.
Variables
El tipo de la variable determinar el conjunto de valores que se podrn almacenar en la variable y el tipo de operaciones que se podrn realizar con ella.
Expresiones
Se componen de sentencias, que a su vez estn compuestas en base a expresiones. Una expresin es una determinada combinacin de operadores y operandos que se evalan para obtener un resultado particular. Los operandos pueden ser variables, constantes o llamadas a mtodos.
Expresiones
Una llamada a un mtodo evala el valor devuelto por el mtodo y el tipo de una llamada a un mtodo es el tipo devuelto por ese mtodo. Java soporta constantes con nombre y la forma de crearlas es: final float PI = 3.14159;
Arrays
En Java, al ser un tipo de datos verdadero, se dispone de comprobaciones exhaustivas del correcto manejo del array; por ejemplo, de la comprobacin de sobrepasar los lmites definidos para el array, para evitar el desbordamiento o corrupcin de memoria.
Arrays
En Java hay que declarar un array antes de poder utilizarlo. Y en la declaracin hay que incluir el nombre del array y el tipo de datos que se van a almacenar en l. La sintaxis general para declarar e instanciar un array es:
tipoDeElementos[ ] nombreDelArray = new tipoDeElemetos[tamaoDelArray];
Al igual que los dems objetos en Java, la declaracin del array no localiza, o reserva, memoria para contener los datos. En su lugar, simplemente localiza memoria para almacenar una referencia al array. La memoria necesaria para almacenar los datos que componen el array se buscar en memoria dinmica a la hora de instanciar y crear realmente el array.
Para crear un array en Java hay dos mtodos bsicos. Crear un array vaco:
Strings
Un String o cadena se considera a toda secuencia de caracteres almacenados en memoria y accesibles como una unidad. C/C++ no soportan un tipo String, sino que simplemente disponen de un formato de almacenamiento de caracteres que se puede tratar como un String. Sin embargo, Java implementa cadenas a travs de las clases String y StringBuffer, a las que se dedicar un amplio estudio.
Expresiones y Operadores
Expresiones y Operadores
Una expresin es un conjunto variables unidos por operadores. Son rdenes que se le dan al computador para que realice una tarea determinada Una expresin es una combinacin de variables, operadores y llamadas de mtodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor.
Expresiones y Operadores
Los operadores son smbolos especiales que realizan una funcin particular sobre otros elementos llamados operandos. Dichos operandos pueden ser literales, variables, constantes o funciones. Cada operador puede a su vez clasificarse en:
Unario Binario
Tipos de operadores
Operadores aritmticos Operadores de asignacin Operadores relacionales Operadores lgicos Operadores unarios Operadores incrementales Operador condicional ?: Operador instanceOf Operador de concatenacin de cadenas caracteres (+) Operadores que actan a nivel de bits
de
Operadores Aritmticos
Operador Utilizacin Significado
+
* /
op1 + op2
op1 op2 op1 * op2 op1 / op2
Suma
Resta Multiplicacin Divisin
op1 % op2
Mdulo
Operadores de Asignacin
Operador += -= Utilizacin op1 += op2 op1 = op2 Expresin equivalente op1 = op1 + op2 op1 = op1 - op2
*=
/= %=
op1 *= op2
op1 /= op2 op1 %= op2
Operadores Relacionales
Operador > >= < <= == != Utilizacin op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 El resultado es true
Si op1 es mayor que op2 Si op1 es mayor o igual que op2 Si op1 es menor que op2 Si op1 es menor o igual que op2 Si op1 y op2 son iguales Si op1 y op2 son diferentes
Operadores Lgicos
Operado Nombre r Utilizaci n
op1 && op2
Resultado True si op1 y op2 son true. Si op1 es false ya no se evala op2
&& ||
And Or
op1 || op2 True si op1 u op2 son true. Si op1 es true ya no se evala op2
&
|
Negaci n And
Or
! op
op1 & op2
op1 | op2
Estructuras de Control 10
Secuencial
Las instrucciones de este tipo de estructura se ejecutan una detrs de la otra, exactamente en el mismo orden en que aparecen en el programa fuente.
Selectiva
Simple
Existe una condicin que se evala a cierto o falso; si resulta cierto, entonces se ejecutan las instrucciones que se encuentran entre llaves; en caso contrario, no se ejecutan
Selectiva
if ( expresin condicion-- ) { instruccin (es) : : } siguiente instruccin
Ejemplo
Considrese la siguiente proposicin: if ((calif >= 90) | | (calif < 60)) System.out.println (Extrema) else System.out.println (Media)
Qu se exhibir si calif es igual a 90? Qu se exhibir si calif es cero? Qu se exhibir si calif es igual a 70?
Ejemplo
Considrese la siguiente proposicin IF anidada: if (a > b) if (a > c) System.out.println (A es el mayor) Escrbase una sola proposicin IF que sea equivalente a ste pero que no est anidada.
Ejemplo
Considrese el siguiente segmento de programa: a = 4; b = 5; if (a > b){ c = 999; d = 999; }
Despus de ejecutarse este segmento, cul de las siguientes afirmaciones es cierta?
Ni c ni d quedan definidas. La variable c = 999 y d no est definida. La variable d = 999 y c no est definida. c = 999 y tambin d = 999.
Selectiva
Doble
Si expresin se evala a true, entonces se ejecuta instruccin1; en caso contrario se ejecuta instruccin2. En cualquier caso, el control pasa despus a la siguiente instruccin
Selectiva
if (expresin condicion--){ instruccion1 } else{ instruccion2 } siguiente instruccin
Ejemplo
Considrese el siguiente segmento de programa:
Ejemplo
x = 10; y = 11; z = 12; if ((x > y) | | (z > y)) if (x > z) if (y > z) System.out.println(Termin) else System.out.println (No termino an.) else System.out.println (Nunca llega aqu);
Determnese si se exhibe alguno de los mensajes cuando se ejecuta el segmento, y cul es.
Ejemplo
Qu se exhibe cuando se ejecuta el siguiente segmento de cdigo? a = 0; b = -1; if (a > 0) System.out.println(A) else if (b < 0) System.out.println(B) else System.out.println(C)
Selectiva
Mltiple
La sentencia switch se utiliza para seleccionar una de entre mltiples alternativas Si el valor de la expresin es igual a una de las etiquetas case entonces la ejecucin comenzar con la primera sentencia y continuara hasta encontrar la sentencia break
Selectiva
switch ( selector ) { case etiqueta1 : sentencias1; break; case etiqueta2 : sentencias2; break; : case etiqueta n: sentencias n; break; default : } sentencias;
Ejemplo
int opcion; System.out.println("captura un numero del 1-5"); opcion=in.nextInt();
switch (opcion) { case 1 : System.out.println("El valor es A"); break; case 2 : System.out.println ("El valor es E"); break; case 3 : System.out.println ("El valor es I"); break; case 4 : System.out.println ("El valor es O"); break; case 5 : System.out.println ("El valor es U"); break; }
Iterativa
Un bucle se utiliza para realizar un proceso repetidas veces. Se denomina tambin lazo o loop. Java proporciona tres formas bsicas de bucle:
la instruccin while, la instruccin for y la instruccin do-while
Iterativa
while
Las instrucciones dentro de las llaves se ejecutan mientras la expresin sea verdadera. El bloque de sentencias puede ejecutarse ninguna vez.
Iterativa
while (expresin condicion--){ instruccion } siguiente instruccin
Ejemplo
while ((opcion > 0) && (opcion < 6)){ System.out.println("Se cumplio la condicion"); System.out.println("captura un numero del 1-5"); opcion=in.nextInt(); } System.out.println ("No se cumplio la condicion");
Iterativa
for
Se usa principalmente para la iteracin simple. Es el ms adecuado para implementar bucles controlados por contador, que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada valor de un rango especificado.
Iterativa
for (valor inicial; condicin; incremento/decremento){ sentencias }
do while
Iterativa
En algunos casos nos gustara garantizar que el cuerpo del bucle se ejecuta al menos una vez. Esto se puede conseguir usando la instruccin do while
boolean ban=true; Int a =1; While (ban){ System.out.println(Mensaje); If (a == 10) ban=false else a++ }
Iterativa
do{ sentencias; } while (condicion--); siguiente instruccin
Clases y objetos
Una clase describe una plantilla o plano maestro para crear cualquier cantidad de los mismos objetos (instancias). La clase es la generalizacin del objeto
Clases y objetos
La clase es lo genrico: es el patrn o modelo para crear objetos. Una clase es un prototipo o modelo que define las variables y mtodos comunes a todos los objetos de un cierto tipo.
Clases y objetos
Un objeto en general es algo con masa, un peso, un volumen, algo que se puede se puede tocar y que permite su descripcin fiel, y en algunos casos tiene acciones que describen su funcin.
Clases y objetos
Los elementos declarados de una clase se denominan objetos de la clase. De una nica clase se pueden declarar o crear numerosos objetos. Un objeto (en ingls, instance) es un ejemplar concreto de una clase.
Atributos y mtodos 10
Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que operan sobre esos datos.
Atributos y mtodos
A estos datos y funciones pertenecientes a una clase se les denomina : atributos
Atributos y mtodos
Son sinnimos de mtodo: procedimiento, funcin, rutina, en algunos lenguajes de programacin. El trmino mtodo distingue las propiedades especiales que adquiere un programa en el entorno POO. Se invocan a travs de un mensaje
Atributos y mtodos
Mtodo es un conjunto de instrucciones referenciadas por un solo nombre que realizan alguna accin determinada. Los mtodos se definen en dos partes en el programa: la cabecera (firma) y el cuerpo del mtodo (conjunto de instrucciones).
Atributos y mtodos
La primera lnea de la definicin de un mtodo se llama cabecera, declaracin o header. El cdigo comprendido entre las llaves {} es el cuerpo o body del mtodo.
Paso de parmetros 5
Un parmetro es una forma de enviar informacin a un mtodo. El conjunto de parmetros constituyen la firma de un mtodo.
Paso de parmetros
En Java los argumentos de los tipos primitivos se pasan siempre por valor. Que quiere decir esto? El mtodo recibe una copia del argumento actual; si se modifica esta copia, el argumento original que se incluy en la llamada no queda modificado.
Paso de parmetros
La forma de modificar dentro de un mtodo una variable de un tipo primitivo es incluirla como variable miembro (atributo) en una clase y pasar como argumento una referencia a un objeto de dicha clase. Las referencias se pasan tambin por valor, pero a travs de ellas se pueden modificar los objetos referenciados.
Paso de parmetros
Los arreglos y los objetos por ser entidades dinmicas pasan siempre por referencia.
Constructores y mtodos
En un programa escrito en Java identifique
Los constructores Los mtodos sobrecargados El uso de this para ejecutar constructores sobrecargados
Constructores
Existen dos formas de incluir constructores en un programa Java Utilice el constructor por defecto
Agregue uno o ms constructores explcitamente
Control de acceso
Modificador (Modifier) public protected
Misma clase Mismo paquete Subclases Universo
si si
si si
si si
si
<default>
private
si
si
si
Sobrecarga de mtodos
Se puede utilizar el mismo nombre para definir varios mtodos de la siguiente manera:
public void println(int i) public void println(float f) public void println(String s)
Los argumentos deben diferir Los tipos de retorno pueden ser diferentes
Constructores sobrecargados
public Employee(String name, double salary, Date DoB) public Employee(String name, double salary) public Employee(String name, Date DoB)
Los argumentos deben diferir La referencia this puede utilizarse en la primera linea de un constructor para ejecutar otro constructor
Constructores
Declaracin de constructores
Constructores
public class Thing { private int x; public Thing() { x = 47; } public Thing(int new_x) { x = new_x; } public int getX() { return x; } public void setX(int new_x) { x = new_x; } }
Constructores
public class TestThing { public static void main(String[] args) { Thing thing1 = new Thing(); Thing thing2 = new Thing(42); System.out.println("thing1.x is " + thing1.getX()); System.out.println("thing2.x is " + thing2.getX()); } } Output: thing1.x is 47thing2.x is 42
Sobrecarga de constructores
public class Employee { private static final double BASE_SALARY = 15000.00; private String name; private double salary; private Date birthDate; public Employee(String name, double salary, Date DoB) { this.name = name; this.salary = salary; this.birthDate = DoB; } public Employee(String name, double salary) { this(name, salary, null); } public Employee(String name, Date DoB) { this(name, BASE_SALARY, DoB); } public Employee(String name) { this(name, BASE_SALARY); }
Los paquetes
Identifique en un programa escrito en Java El enunciado package Los enunciados import Las clases, los mtodos y los atributos Los constructores
Los paquetes
Los paquetes ayudan a manejar los archivos de sistemas grandes Los paquetes contienen clases
Los paquetes
Los paquetes
Especificar la declaracin del paquete al inicio del archivo fuente A lo ms debe existir una declaracin de paquete en cada archivo fuente Si no se agrega la definicin de un paquete entonces la clase pertenece al paquete por defecto que corresponde al directorio raz del proyecto Los nombres de paquetes deben estar separados por puntos
Los paquetes
Archivo fuente
package shipping.reports.Web; import shipping.domain.*; import java.util.List; import java.io.*;
public class VehicleCapacityReport { private List vehicles; public void generateReport(Writer output) { ... } }
Ocultamiento de informacion
Ocultamiento de informacion
Encapsulamiento
Ocultar los detalles de implantacin de una clase Obligar al usuario a utilizar una interfaz para accesar los datos Generar cdigo de ms fcil mantenimiento
Encapsulamiento
Excepciones
Utilizar los enunciados try, catch, and finally Ubicar las categoras de excepciones Identificar las excepciones mas comunes Crear sus propias excepciones
Excepciones
La clase Exception define condiciones de error recuperables que un programa puede encontrar Las excepciones pueden ocurrir cuando:
El archivo que se desea abrir no existe La conexin de red esta inoperativa Los operandos utilizados no estan permitidos
Excepciones
public class HelloWorld { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "No, I mean it!", "HELLO WORLD!!" }; while (i < 4) { System.out.println (greetings[i]); i++; } } }
Excepciones
try { // cdigo que puede generar alguna excepcin } catch (MyExceptionType myExcept) { // cdigo de recuperacin de la excepcin // indicada } catch (Exception otherExcept) { // cdigo que atrapa otra excepcin } finally { // cdigo que siempre se ejecuta despus // de atrapar la excepcin }
Excepciones
public class HelloWorld2 { public static void main (String args[]) { int i = 0; String greetings [] = { "Hello world!", "No, I mean it!,"HELLO WORLD!! }; while (i < 4) { try { System.out.println (greetings[i]); } catch (ArrayIndexOutOfBoundsException e){ System.out.println("Re-setting Index Value"); i = -1; } finally { System.out.println("This is always printed"); } i++; } } }
Excepciones comunes
StackOverflowError NullPointerException FileNotFoundException ArrayIndexOutOfBoundsException SecurityException
Categorias de excepciones
JERARQUAS DE CLASES
La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamente consiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y mtodos propios, tiene incorporados los atributos y mtodos heredados de la superclase. De esta manera se crea una jerarqua de herencia.
Por ejemplo, imaginemos que estamos haciendo el anlisis de un Sistema para una tienda que vende y repara equipos celulares.
En general, podemos tener una gran jerarqua de Clases tal y como vemos en el siguiente grfico:
Al igual que C++, Java permite mtodos sobrecargados (overloaded), es decir, mtodos distintos que tienen el mismo nombre, pero que se diferencian por el nmero y/o tipo de los argumentos.
A la hora de llamar a un mtodo sobrecargado, Java sigue unas reglas para determinar el mtodo concreto que debe llamar: 1. Si existe el mtodo cuyos argumentos se ajustan exactamente al tipo de los argumentos de la llamada (argumentos actuales), se llama ese mtodo. 2. Si no existe un mtodo que se ajuste exactamente, se intenta promover los argumentos actuales al tipo inmediatamente superior (por ejemplo char a int, int a long, float a double, etc.) y se llama el mtodo correspondiente.
3. Si slo existen mtodos con argumentos de un tipo ms restringido (por ejemplo, int en vez de long), el programador debe hacer un cast explcito en la llamada, responsabilizndose de esta manera de lo que pueda ocurrir.
4. El valor de retorno no influye en la eleccin del mtodo sobrecargado. En realidad es imposible saber desde el propio mtodo lo que se va a hacer con l. No es posible crear dos mtodos sobrecargados, es decir con el mismo nombre, que slo difieran en el valor de retorno.
ACCESO PROTEGIDO
Las variables miembro pueden ir precedidas en su declaracin por uno de los modificadores de acceso: public, private, protected y package (que es el valor por defecto y puede omitirse). Junto con los modificadores de acceso de la clase (public y package), determinan qu clases y mtodos van a tener permiso para utilizar la clase y sus mtodos y variables miembro.
Las variables miembro de una clase declaradas como public son accesibles a travs de una referencia a un objeto de dicha clase utilizando el operador punto(.). Las variables miembro declaradas como private no son accesibles directamente desde otras clases. Las funciones miembro de una clase tienen acceso directo a todas las variables miembro de la clase sin necesidad de anteponer el nombre de un objeto de la clase. Sin embargo las funciones miembro de una clase B derivada de otra A, tienen acceso a todas las variables miembro de A declaradas como public o protected, pero no a las declaradas como private. Una clase derivada slo puede acceder directamente a las variables y funciones miembro de su clase base declaradas como public o protected.