1. Módulo 3: Elementos de una clase
NAC
Modalidad de estudios: Virtual
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Zeuszoft@protonmail.com
2. Objetivos del encuentro:
1. Adquirir los conceptos básicos relacionados con la
programación
2. Reconocer las características de la programación
3. Conocer la historia de la programación
Módulo Nro. 3
3. Frase Motivacional
Cuando te encuentres a ti mismo al
lado de la mayoría, es tiempo de
parar y reflexionar
(Mark Twain)
4. 4
Conceptos Básicos de Java
Clases
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int vdia, int vmes, int vanio) {
dia = vdia;
mes = vmes;
anio = vanio;
}
public void mostrarFecha() {
System.out.println (dia+”/”+mes+”/”+anio);
}
public static void main(String[] args) {
Fecha MiFecha = new Fecha(10, 08, 2003);
}
}
Variable
Constructor
Método
Método principal de la
aplicaciónCreación de un objeto
5. 5
Conceptos Básicos de Java
Clases (2)
Creación de Objetos
Se utiliza la palabra reservada new
<NombreClase> <refObjeto>;
<refObjeto> = new <NombreClase>() ;
ó <NombreClase> <refObjeto> = new <NombreClase>() ;
ejemplo: Fecha MiFecha ;
MiFecha
MiFecha = new Fecha (10, 08, 2003) ;
MiFecha 0xFFFF0000
????
2003anio
08mes
10dia
6. 6
Conceptos Básicos de Java
Clases (3)
Modificadores de clase: son palabras reservadas que se anteponen a la declaración de
clase.
Sintaxis: modificador class NombreClase
Los modificadores posibles son los siguientes:
public. Toda clase public debe ser declarada en un fichero fuente con el nombre
de esa clase pública: NombreClase.java. De esta afirmación se deduce que en un
fichero fuente puede haber más de una clase, pero sólo una con el modificador
public.
abstract. Las clases abstractas no pueden ser instanciadas. Sirven únicamente
para declarar subclases que deben redefinir aquellos métodos que han sido
declarados abstract.
final. Una clase declarada final impide que pueda ser superclase de otras clases.
Dicho de otra forma, ninguna clase puede heredar de una clase final.
12. 12
Conceptos Básicos de Java
Clases (9)
Atributos: sirven para almacenar valores de los objetos que se instancian a partir de una
clase.
Sintaxis:
[modifÁmbito][static][final][transient][volatile] tipo nombreAtributo
Tipos de Atributos:
de Objeto: son variables u objetos que almacenan valores distintos para instancias
distintas de la clase (para objetos distintos).
de Clase: son variables u objetos que almacenan el mismo valor para todos los
objetos instanciados a partir de esa clase.
Declaración de Atributos:
static. Mediante la palabra reservada static se declaran atributos de clase.
final. Sirve para declarar constantes, no se permite la modificación de su valor.
otros modificadores: transient, volatile.
modific. de ámbito: public, protected, private, (default)
13. 13
Conceptos Básicos de Java
Clases (10)
Ámbito de una variable. En Java se dispone de tres tipos de variables:
Variables miembro pertenecientes a una clase
Argumentos de un método de la clase
Variables locales de un método de la clase
ejemplo:
class Ejemplo {
int x ; // variable miembro
void metodo ( int y ){ // argumento
int z ; // variable local
x = y + z ;
}
}
Las variables miembro son visibles desde cualquier parte de la clase
Los argumentos y variables locales sólo son visibles dentro del método al que
pertenecen. Dejan de existir al finalizar el método.
14. 14
Conceptos Básicos de Java
Métodos
Los Métodos son bloques de código (subprogramas) definidos dentro de una clase.
Sintaxis: <tipoRetorno> <nombreMétodo> ( <listaArgumentos> )
donde <tipoRetorno> tipo devuelto por el método.
<nombreMétodo> identificador válido en Java.
<listaArgumentos> sucesión de pares tipo-valor separados por coma
ejemplo:
String darFormato (String dia, String mes, String anio) {
String s ;
s = dia + “/” + mes + “/” + anio ;
return s ;
}
Un método tiene acceso a todos los atributos de su clase.
Pueden ser llamados o invocados desde cualquier sitio.
Un método puede invocar a otros métodos.
En Java no se puede definir un método dentro de otro.
La ejecución de todos los programas se inician con el método main().
15. 15
Conceptos Básicos de Java
Métodos (2)
Modificadores de métodos:
Sintaxis:
[ModificadorDeÁmbito] [static][abstract][final][native][synchronized]
TipoDevuelto NombreMétodo ([ListaParámetros])
Los modificadores posibles son los siguientes:
static. Los métodos static son métodos de clase (no de objeto) y por tanto, no
necesita instanciarse la clase (crear un objeto de esa clase) para poder llamar a ese
método.
abstract. Se declaran en las clases abstract. Cuando se declara un método
abstract, no se implementa el cuerpo del método, sólo su signatura.
final. Los métodos de una clase que se declaran de tipo final no pueden ser
redefinidos por las subclases.
native. Los métodos native, son métodos que se encuentran escritos en otro
lenguaje de programación distinto a Java (ej: C).
synchronized. Son métodos especiales para cuando varios threads
(subprocesos) pueden acceder concurrentemente a los mismos datos y se desea
que una sección crítica se proteja (bloquee) para que los threads accedan en
exclusión mutua a la misma.
16. 16
Conceptos Básicos de Java
Métodos (3)
Constructor: es un método especial de las clases que sirve para inicializar los objetos que
se instancian como miembros de una clase.
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int vdia, int vmes, int vanio) {
dia = vdia;
mes = vmes;
anio = vanio;
}
public void mostrarFecha() {
System.out.println (dia+”/”+mes+”/”+anio);
}
public static void main(String[] args) {
Fecha MiFecha = new Fecha(10, 08, 2003);
}
}
17. 17
Conceptos Básicos de Java
Referencia this
this: es una palabra clave que hace referencia al objeto o instancia actual.
Usos:
Cuando se hace referencia a una variable miembro cuyo identificador coincide con el
identificador de un parámetro.
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
}
public void mostrarFecha() {
System.out.println (dia+”/”+mes+”/”+anio);
}
public static void main(String[] args) {
Fecha MiFecha = new Fecha(10, 08, 2003);
}
}
18. 18
Conceptos Básicos de Java
Referencia this (2)
Cuando se hace referencia al objeto actual en un método que devuelve un objeto del tipo de
referencia.
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
}
public Fecha getObjetoFecha() {
return this;
}
public static void main(String[] args) {
Fecha MiFecha = new Fecha(10, 08, 2003);
Fecha MiFecha2 = MiFecha.getObjetoFecha();
}
}
19. 19
Conceptos Básicos de Java
Referencia this (3)
Cuando se invoca a otros constructores de la clase.
public class Fecha {
private int dia;
private int mes;
private int anio;
public Fecha(int dia, int mes, int anio) {
this.dia = dia;
this.mes = mes;
this.anio = anio;
}
public Fecha() {
this(01,01,1900);
}
public static void main(String[] args) {
Fecha MiFecha = new Fecha(10, 08, 2003);
Fecha MiFecha2 = new Fecha();
}
}
20. 20
Conceptos Básicos de Java
Herencia
Herencia: es el mecanismo por el que se crean nuevos objetos definidos en términos de
objetoa ya existentes.
Sintaxis: class NombreClaseHija extends NombreClasePadre
class Padre {
String variable;
void metodo() {
variable = “Padre”;
}
}
class Hija extends Padre {
String variable;
void metodo() {
variable = “Hija”;
super.metodo();
System.out.println(variable);
System.out.println(super.variable);
}
}
21. 21
Herencia Simple
public class Employee {
public String name = "";
public double salary;
public Date birthDate;
public String getDetails() {...}
}
public class Manager extends Employee {
public String department;
}
24. 24
Overriding de métodos en herencia
public class Employee {
protected String name;
protected double salary;
protected Date birthDate;
public String getDetails() {
return “Name: “ + name + “n” + “Salary: “ + salary;
}
}
public class Manager extends Employee {
protected String department;
public String getDetails() {
return “Name: “ + name + “n” + “Salary: “ + salary + "n" + “Manager of: “ +
department;
}
}
25. 25
Los métodos overridden NO PUEDEN ser
menos accesibles
public class Parent {
public void doSomething() {}
}
public class Child extends Parent {
private void doSomething() {} // illegal
}
public class UseBoth {
public void doOtherThing() {
Parent p1 = new Parent();
Parent p2 = new Child();
p1.doSomething();
p2.doSomething();
}
}