Podemos pensar en otros objetos no existentes: el reloj

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos
Advertisements

How to make questions en español
Telling Time.
Qué es Orientación a Objeto ? Los datos que usan los programas son objetos Los objetos son una colección de variables y métodos para manipularlas Métodos.
ALC #7 Do the math problems and write the answer in Spanish.
First Grade – High Frequency Word Reading Competition Classroom Competition Created by: Malene Golding School Improvement Officer: Kimberly Fonteno.
¿Qué haces en la escuela? Question words, objects, yo-go’s.
Time Telling time is rather easy. You only need to know the numbers up to 59 to be able to tell the time.
Associative, Commutative, and Distributive Properties of Addition and Multiplication August 18th Students only need to copy the writing in purple. Students.
Foreign Language Teaching Tips Rich Bradshaw. ¡Classroom Vocabulary Scavenger Hunt! Purpose Introduce new vocabulary words in TL Identify items using.
Verbs like Gustar Notes/ Examples.
Programación orientada a objetos Capítulo 3 Interacción de objetos.
Affirmative and Negative Words P. 31 Realidades 2.
EQUILIBRIUM OF A PARTICLE IN 2-D Today’s Objectives: Students will be able to : a) Draw a free body diagram (FBD), and, b) Apply equations of equilibrium.
Las clases de Sra. Schwarz Realidades 1
Question Formation Español Uno.
Los Adjetivos Posesivos
Español 3 24 de febrero de 2017.
8 de febrero de 2017.
Asking Questions P. 184 Realidades 1.
¿Qué hora es?.
Las clases de Sra. Schwarz Realidades 1
Descubre Lesson 2 Vocabulary pg 56
(How to tell time in Spanish)
Double Object Pronouns
PREGUNTAS: Questions and Question Words
Español 1 29 de marzo de 2017.
Día número 3 Español 1—Acelerado
Getting to know you more!
To ask what time it is in Spanish we say ______________
Español 1 7 de febrero de 2017.
Español 2 3 de marzo de 2017.
First Grade Dual High Frequency Words
Español 1 13 de febrero de 2017.
Español 1 16 de febrero de 2017.
Manejo de Punteros y objetos en memoria dinámica en C++
Día número 24 Español 1—Acelerado
Telling time to the minute, using “y” and “menos”.
Las palabras interrogativas
¿Qué hora es?.
Manejo de Punteros y objetos en memoria dinámica en C++
Communicative Objective:
Telling Time (Cómo decir la hora).
PREGUNTAS: Questions and Question Words
Asking Questions P. 184 Realidades 1.
Los números.
Recetas 3 Objetivo: Hacer preguntas Hablar sobre la comida
Quasimodo: Tienes que hacer parte D de la tarea..
¿Qué hora es?.
Hoy es miércoles el doce de septiembre
Telling Time (Cómo decir la hora).
Telling Time (Cómo decir la hora).
Apuntes: La hora Lección 1: Hola, ¿Qué tal?.
“HACE + TIME + QUE” EXPRESSIONS
Proyecto: Mi horario Nombre Hora Fecha.
Asking Questions P. 184 Realidades 1.
Asking Questions P. 184 Realidades 1.
Telling Time (Cómo decir la hora).
Telling Time (Cómo decir la hora).
Telling time (Cómo decir la hora).
Manejo de Punteros y objetos en memoria dinámica en C++
Intruccion a la plataforma Java
inglés: Henry the Eighth/ español: Enrique octavo
Question Formation Spanish I Page 52.
Manejo de Punteros y objetos en memoria dinámica en C++
Development of the concert programme
Manejo de Punteros y objetos en memoria dinámica en C++
¿Por qué orientación al objeto ?
Las Preguntas (the questions) Tengo una pregunta… Sí, Juan habla mucho con el profesor en clase. No, Juan no habla mucho en clase. s vo s vo Forming.
Transcripción de la presentación:

Podemos pensar en otros objetos no existentes: el reloj Las variables son las posiciones de los punteros del segundero, minutero y horario Los métodos son para poner los valores y preguntar “qué hora es?” Set the pointers’ value What time is it ?

El registro de un estudiante Las variables son los datos relevantes del estudiante (nombre, edad, dirección, etc..) Los métodos son para setear y recuperar estos datos Set data Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 retrieve data

Given a name ask the telephone number El libro telefónico Las variables son listas de números y nombres Los métodos son para registrar un nuevo par, Preguntar el teéfono dado un nombre, cambiar un teléfono o borrar un par Set a name with a telephone number change the telephone number delete a pair name-telephone Given a name ask the telephone number

Clases y objetos Todo objeto es de una cierta clase La clase define el tipo de objeto, esto es: Qué variables contiene Qué métodos pueden ser aplicados a un objeto de esta clase Objecto A de clase clock Objecto B de clase clock Clase Clock Objecto C de clase clock

Diseño de los métodos (1) Clock A = new Clock( ); Clock A; A = new Clock(); A.setTime(15,35,45); int i; i = A.getHour( ); Creates a new Clock object Put pointers in 15, 35 and 45 Get the value of the hour-pointer

Diseño de los métodos (2) Phonebook B = new Phonebook( ); B.addEntry(“Simón Vera”,422596160); long l = B.getNumber(“Simón Vera” ); Crea un libro de teléfonos vacío Dados nombre y número como parámetros crea un entry Simón Vera 422596160 Simón Vera Dado un nobre como parámetro recupera el número 422596160

Cómo se define una clase nueva Definir una nueva clase básicamente significa Definición de las variables que contendrá un objeto Definición de los métodos que se le podrán aplicar a un objeto de esta clase La definición de una clase debe ir en un archivo llamado Classname.java Por convención, el nombre de las clases debe empezar con mayúscula Console String Clock Student Después de compilar el archivo con la clase podemos usarla al igual que la consola

La clase Clock Un Clock tendrá trés variables (atributos, campos) int hours int minutes int seconds Cada vez que se cree un nuevo objeto Clock sus trés variables valdrán 0 (medianoche) El método setTime() va a poner una nueva hora. Este método requerirá trés parámetros: hh, mm, ss También tendremos 3 métodos que retornarán el valor de cada puntero (por ejemplo El método getTime() retorna un String con la hora en el formato hh:mm:ss

Escribamos el archivo Clock Escribamos el archivo Clock.java, compilémolos y usémolos en un programa Clock A = new Clock( ); A.setTime(15,30,20); int h = A.getHour( ); int m = A.getMinutes(); int s = A.getMinutes(); String s = getTime(); hours minutes seconds 15 30 20 Por convención, los nombres de variables y metodos empiezan minúscuas Clock.java ProgramClock1 ProgramClock2

Como usar clases definidas por el usuario La manera más simple es usar el archivo class en el mismo dirctorio donde se encuantra el programa que usa la clase (también se pueden usar paquetes o definir la variable CLASSPATH Java MyClass MyClass AnotherClass main(... new AnotherClass()

El registro de un estudiante Las variables: name, address, yearBorn Los métodos setX(parámetro), getX(), Con X = Name, Address, Year Set data Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 retrieve data Student.java Program9

El Phone Book Name Number Matsumoto 11122233 Vera 3456789 Wakahara 2345678 ..... .... Set(name,number) Retrieve(name)

El Phone Book: Implementación int[] numbers String[] names 1 2 3 4 5 6 Jun Kenichiro Kamugisha 45678 12345 55443 int next Maximum Phonebook program dos

Otra class: el Vektor (o Punto) Crear un Vektor Retornar em módulo de un Vektor Retornar parte-x o parte-y Sumar 2 Vektores Restar 2 Vektores y x ProgramVektor.java Vektor.java

La variable “this” en la definición de la clase public class MyClass { var a1, a2, a3; method1() { this this.a, this.b, this.c } public static void main(....) { MyClass mc = new MyClass() mc.method1(); }

La variable a un object es un puntero Console c, b; Tenemos dos punteros apuntando a nada todavía. Tienen el valor null y causará Invocar un método sobre esta variable c = new Console(); b = c; Ahora tenemos dos variables apuntando Al mismo objeto objecto. Si invocamos Cualquier método sobre cualquiera de las Variables, ambas notarán el cambio c b

Resumamos: Escritura de clases Esto implica que esta clase será conocida fuera del archivo también. Nombre de clases empiezan Por convención con mayúsculas public class Classname { declaration of variables write contructor method(s) write other methods } Se pueden definir más clases en un mismo archivo pero una de ellas Puede ser pública solamente ! (y es la que le da el nombre al archivo)

Cómo escribir métodos dinámicos Type of value the method will return (void in case it does not return any value) Name of the method (given by the programmer) public int getHours( ) { return hours; } Public, private, protected or static Parameters of the method (none in this case) The instructions should be written within the brackets {}

Escritura de constructores Nombre del método es El de la clase Parámetros que recibirá el Constructor para crear el nuevo Objeto (inicialización) Clock2 ( int h, int m, int s, int D, int M ) { . . . } No se necesita escribir nada aqui Se puede escribir más de un constructor Clock2 ( ) { . . . } Este constructor pondrá valores default en el objeto

Extendiendo un clase: Herencia Una de las características más poderosas que tiene la orientación a objeto es la posibilidad de extender una clase, incluso si la implemnetación de esta no se conoce Original Class Class1 Super-clase de la clase extendida Un objeto de Clase Class2 es También de Clase Class1 Original Class Class2 Extended Class Definición de nuevas variables y métodos

Extendamos laclase Clock Vamos a ponerle más información a un objeto de clase Clok Le pondremos las variables day y month y los métodos Para manejarlas. public class Clock2 extends Clock { declare otras variables (day y month) declare otros metodos } Clock2.java dos

Extendiendo la clase Console Como dijimos, incluso si no sabemos cómo fue programada La superclase podemos usarla para extenderla, ya que para Esto se usa el archivo class. Por ejemplo, podemos extender la consola para incluir los métodos readArray(int n) y a readStudent() public class Console2 extends Console { public } Console2.java program

La clase StringTokenizer El Constructor de esta clase recibe un string (y posiblemente También un separador). El string es separado en varios sub-strings, de acuerdo al separador (espacio si no se recibe nada). Estos pueden ser recuperados secuencialmente por el método nextToken(). También existe el método hasMoreTokens() que retorna true si todavía quedan más substrings por retornar. String s1 = “we are a happy family” StringTokenizer st = new StringTokenizer(s1); st we are a happy family String s = st.getToken(); st are a happy family

La clase Object Exite una clase minimal llamada “Object” Todas las clases en java son extensiones de ella Incluso si no se escribe explícitamente, las clases definidas por el usuario también son extensiones de ella Esto implica que cualquier objeto en un programa java será de la clase Object Object Clock String Console Clock2 Others Console2

Extendiendo la clase Student Vamos a incorporar las notas Como cada alumno puede recibir un n úmero variable de notas, vamos a usar un arreglo de largo variable Vectores no son parte del core del lenguaje java, por lo que hay que importar el paquete java.utility The instruction for doing this is import java.util.Vector; or import java.util.*; Some of the methods of this class are void add(Object) Object elementAt() int size() WasedaStudent Program10

Public, private, protected and static Methods and variables in a class can be classified as static private private protected and static A public method or variable can be accessed by any program using an object of the class. In case of public variables, they may be modified directly by the program: public class Student { public String name; public String address; public int yearBorn; ...... Student s1 = new Student(); s1.name = “Nelson Baloian”;

Private & protected A private method or variable can be accessed only by the methods written inside the class definition. Even an other class derived from the one containing a private method or variable cannot access them ! A protected method or variable can be accessed only by the methods written inside the class definition and by the methods of an extended class When there is no classifying keyword before a method or a variable, that method or variable is assumed to be protected

Private, protected, public Public: known to anyone who knwos the class Protected: known also to extended classes Private: only known inside the file of the class

Static Variables A static variable means that there is only one variable for the whole class (contrary to the dynamic variables, from which each object has an own instance of it) Example: we want to count how many students we have created: public class WasedaStudent2 extends WasedaStudent { public static int nstudents = 0; WasedaStudent2(String x, String y, int z, int n) { super(x,y,z); marks = new int[n]; nmarks = 0; nstudents = nstudents +1; }

Static Variables WasedaStudent2.class nstudents ws21 ws22 ws23 marks name etc nstudents ws21 Marks name etc ws22 marks name etc marks name etc ws23

Static Methods A static method means that the method will be applied to no object. It is applied to the class. The program using it shoud write: int i = WasedaStudent.nSt(); The Math class from the language has many static methods implemented: Math.sqr(x), Math.sin(x), Math.max(x,y), Math.pow(x,y) Another possibility is to declare nstudents as public and Any program can invoke it as WasedaStudent2.nstudents But any program can change its value then !

Static Methods Static methods are applied to a classname nstudents putNewMark() marks name etc Dynamic methods are applied to an object showAverage()