Acho q seu compilador foi escrito pela Microsoft, meu camarada... :-P
Isto nao compila nem aki nem na China, tenho certeza absoluta... Nao preciso
nem testar, se vc tem:
public class A {
private int x;
}
public class B extends A {
public B() {
x = 1;
}
}
e tentar compilar, vc vai receber ou "undefined variable: x" ou "variable x
is not visible to B" ou alguma coisa assim...
A resposta anterior eh correta...
Qdo vc se certificou?????????????
----------------------------------------------------
Michael Nascimento Santos
Sun Certified Programmer for the Java 2 Platform
Analista/Consultor
Moderador SouJava - www.soujava.org.br
CPM Sistemas - www.cpm.com.br
From: "Edson Tirelli" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
Subject: RES: [java-list] Basico de OO em JAVA - CUIDADO
Date: Thu, 5 Jul 2001 11:49:59 -0300
Amigos,
Este assunto inclusive circulou aqui na lista a um tempo atras. Eh um
erro comum q eu tambem cometia no inicio, mas eh importante exclarecer: os
modificadores de acesso limitam o ACESSO EXTERNO aos atributos da classe,
mas NAO LIMITAM A HERANCA.
Isso quer dizer q se uma classe eh FILHA de outra, ela vai HERDAR TUDO
da classe MAE, podendo eventualmente sobrescrever algumas coisas (por
exemplo, o q NAO estiver definido como "final" na classe mae).
Assim, no exemplo citado pelo colega:
public class Mae {
private int x;
protected int y;
}
public class Filha extends Mae {
// A FILHA HERDA O ATRIBUTO PRIVADO "X" E O ATRIBUTO PROTEGIDO "Y"
public Filha() {
x = 50; // PERFEITAMENTE CORRETO
y = 100; // PERFEITAMENTE CORRETO
}
}
Pra tentar exclarecer o modificador private, observe essa nova
implementacao abaixo:
public class Filha extends Mae {
// A FILHA HERDA O ATRIBUTO PRIVADO "X" E O ATRIBUTO PROTEGIDO "Y"
public Filha() {
x = 50; // PERFEITAMENTE CORRETO
y = 100; // PERFEITAMENTE CORRETO
}
public void m() {
Mae amae = new Mae();
amae.x = 30; // ERRO DE COMPILACAO -> x eh atributo privado de
Mae
amae.y = 20; // CORRETO -> y eh atributo protegido de Mae
this.x = 50; // CORRETO -> atributo x herdado
this.y = 60; // CORRETO -> atributo y herdado
}
}
Observe q a diferenca entre atributos privados e protegidos eh q os
atributos protegidos permitem o ACESSO EXTERNO quando o objeto q estiver
fazendo o acesso for de uma classe FILHA ou DO MESMO PACOTE q a classe q
contem o atributo.
Espero ter exclarecido, mais do que complicado... :)
Abraco,
Edson
---
Edson Tirelli
System Analyst
Microsoft Certified Professional
Sun Certified Programmer for Java 2 Platform
try Automatos @ www.automatos.com
-----Mensagem original-----
De: Alexandre N�brega Duarte [mailto:[EMAIL PROTECTED]]
Enviada em: quinta-feira, 5 de julho de 2001 08:10
Para: [EMAIL PROTECTED]
Assunto: Re: [java-list] Basico de OO em JAVA
Acho que o que voce quer fazer e isso.
public class Mae {
private int atributo;
public Mae(){
}
}
public class Filha extends Mae {
public Filha() {
atributo = 0;
}
}
Se for isso, eh impossivel, mas voce pode contornar este problema fazendo o
atributo protected ao inves de private. Dessa forma ele continua a ser
privado para quem esta de fora da classe mas fica publico para as classes
filhas.
public class Mae {
protected int atributo;
public Mae(){
}
}
Alexandre N�brega Duarte
P�s-Gradua��o em Inform�tica
Departamento de Sistemas e Computa��o
Universidade Federal da Para�ba
----- Original Message -----
From: Fabio Ferreira
To: [EMAIL PROTECTED]
Sent: Wednesday, July 04, 2001 5:13 PM
Subject: [java-list] Basico de OO em JAVA
Como se "seta" um atributo (private) herdado da classe mae no construtor da
classe filha ?
Fabio Ferreira
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------