class Rectangulo {
double hauteur, largeur;
}
VigoJUG & VigoTech Alliance
VigoTech, VigoJUG e o reto
Talleres de iniciación
Instalar Java e un IDE
Clases, obxectos, atributos e métodos
Encapsulación e abstracción
Constructores
Exercicio da biblioteca
Dúbidas
Un meetup o primeiro martes de cada mes
Involucrar as empresas locais e promover a tecnoloxía
¿Te animas cunha charla?. Licencias de JetBrains ;-)
Outras iniciativas: clubes de lectura
Canal de slack #VigoJUG en http://www.vigotech.org
Exercicio de programación breve (30 minutos) en GitHub
PRs (un directorio por cada usuaria)
Unha semana antes: se fecha e lanzamos enquisa
Charla lostrego no seguinte meetup
Un taller o tercer martes de cada mes
Rolda de preguntas para falar dun tema
Exercicio práctico para asentar os coñecementos
Calquera cousa que os traiades de casa
Abertos a outros formatos e iniciativas
Source: http://gif.co/vc7E.gif
Clases, obxectos, atributos e métodos
Encapsulación e abstracción
Todas as variables son clases
Unha clase define un novo tipo
Unha instancia é unha realización de unha clase
A palabra chave class
permite o acceso a instancia actual da clase, a partir de un dos seus métodos.
É posible acceder a instancia actual ca axuda da palabra chave this
A palabra chave public
permite o acceso a instacia actual da clase, a partir de un dos seus métodos
Unha clase precisa o menos dunha variable para ser definida
Non é posible acceder a instancia actual dunha clase a partir de un dos seus métodos
Unha clase é unha realización dunha instancia
A palabra chave self
permite o acceso a instancia actual da clase, a partir de un dos seus métodos
A palabra chave private
permite o acceso a instancia actual da clase, a partir de un dos seus métodos
a = Maza();
Maza(a);
Maza a;
Maza() = new a;
Maza() a;
Maza() = a;
class Rectangulo {
double hauteur, largeur;
}
Rectangulo r1 = new Rectangulo();
Rectangulo r2 = new Rectangulo();
r1.hauteur = 3.0;
System.out.println((r1.hauteur + r2.hauteur));
Imprime "3.0 + 3.0"
Imprime "3.0"
Imprime "6.0"
Xenera unha excepción
Non compila
Rectangulo.area();
area(Rectangulo);
Rectangulo r;
Rectangulo.area();
Rectangulo r;
area(r);
Rectangulo r;
r.area();
Rectangulo r = new Rectangulo();
r.area();
class Punto {
private double x;
private double y;
public void setX(double newX){
x = newX;
}
public void setY(double newY){
y = newY;
}
public double getX(){ return x;}
public double getY(){ return y;}
}
Punto p1 = new Punto();
Punto p2 = new Punto();
p1.setX(2.5);
p2.setY(4.0);
System.out.println(p1.getX() + ", " + p1.getY());
System.out.println(p2.getX() + ", " + p2.getY());
2.5, 4.0 e 2.5, 4.0
2.5, 0.0 e 0.0, 4.0
2.5, 0.0 e 2.5, 4.0
2.5, 0.0 e 4.0, 0.0
class Libro {
private int numPages;
public void setNumPages(int numPages) {
numPages = this.numPages;
}
public void imprimir() {
System.out.println(numPages);
}
}
Libro libro = new Libro();
libro.setNumPages(150);
libro.imprimir();
0
Non compila
150
Constructores
Persoa p1;
p1.init("Tomás", "Antón");
Persoa p1.Persoa("Tomás", "Antón");
Persoa p1 = new Persoa("Tomás", "Antón");
Persoa p1 = new Persoa();
p1("Tomás", "Antón");
class Square {
private double sideLength = 10.0;
public Square() {}
public Square(double sideLength) {
this();
}
public double getSideLength() { return sideLength; }
}
Square sq = new Square(8.0);
System.out.println(sq.getSideLength());
8.0
Non compila, a chamada a this non é valida
10.0
0
Non compila, sideLength non está inicializado
class Rectangle {
double largeur;
double hauteur;
public Rectangle() {
largeur = 0.0;
hauteur = 0.0;
}
public Rectangle(double lr, double hr) {
largeur = lr;
hauteur = hr;
}
public Rectangle(Rectangle r) {
largeur = r.largeur;
hauteur = r.hauteur;
}
}
Rectangle r = new Rectangle(Rectangle(2, 10));
Rectangle r1 = new Rectangle();
Rectangle r2 = new Rectangle(r2);
Rectangle r = new Rectangle(Rectangle());
Rectangle r1 = new Rectangle();
Rectangle r2 = new Rectangle(r1);
Rectangle r1 = new Rectangle(2, 10);
Rectangle r2 = new Rectangle(r1);
Rectangle r3 = new Rectangle(r2);
Rectangle r = new Rectangle(10);
Rectangle r1 = new Rectangle(2, 10);
Rectangle r2 = new Rectangle(r1);
Rectangle r = new Rectangle(Rectangle(10, 2));
Rectangle r = new Rectangle();
Rectangle r = new Rectangle(2, 10);
class Circle {
private double radius;
public void setRadius(double r) {
radius = r;
}
public double getRadius() {
return radius;
}
}
Circle c1 = new Circle();
Circle c2 = new Circle();
c1.setRadius(5.0);
c2 = c1;
c1.setRadius(c2.getRadius());
System.out.println(c1.getRadius() + ", " + c2.getRadius());
5.0, 0.0
0.0, 5.0
0.0, 0.0
5.0, 5.0
class Rectangle2 {
private double largeur;
private double hauteur;
public Rectangle2(double lr, double hr) {
largeur = lr;
hauteur = hr;
}
}
Rectangle2 r1 = new Rectangle2(2, 1);
Rectangle2 r2 = new Rectangle2(2, 1);
System.out.println(r1 == r2);
System.out.println(r1.equals(r2));
System.out.println(r2.equals(r1));
true true true
true false false
false false false
false true true
Requisitos: https://github.com/vigojug/taller-iniciacion-1/blob/master/src/exercise/README.md
Código: https://github.com/vigojug/taller-iniciacion-1/blob/master/src/exercise/Biblio.java
Mover Biblio.java
a src/main/java
.
Slack: canal #vigojug en http://www.vigotech.org