Сразу пример:

Код AS3:
public class Example {
private var variable:int;
public function Example(variableArg:int) {
variable = variableArg;
}
public function traceVariables(exampleArg:Example):void {
trace(this.variable, exampleArg.variable); //выводит 1 2
exampleArg.variable++;
trace(this.variable, exampleArg.variable); //выводит 1 3
}
}
Юзаем так:

Код AS3:
public class Main extends Sprite {
public function Main() {
var exampleA:Example = new Example(1);
var exampleB:Example = new Example(2);
exampleA.traceVariables(exampleB);
}
}
Объекты одного и того же класса имеют полный доступ к внутренностям друг друга. Лично я лишь недавно узнал об этой "фиче". Т.е. доступ к свойствам объектов проверяется исходя из их классов, а не самих объектов. Возникает несколько вопросов: является ли это нарушением инкапсуляции? Есть ли реальное применение такого подхода, или стОит его избегать? Если объекту нужно узнать некоторую информацию о состоянии другого объекта того же класса, следует обращаться через публичный интерфейс объектов или напрямую считывать нужные переменные?
P.S. Подобное также допустимо во всех мейнстримных языках