Показать сообщение отдельно
Старый 30.06.2008, 17:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 370  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от KidsKilla Посмотреть сообщение
=> АС1 не ООП =))) отличная логика.
Так прочитайте вторую часть моего поста, где я просил код. Был показан пример с приватным методом, т.е. метод инкапсулирован в класс (хоть и криво, менее кривым решением было бы использование call и apply и проблем с областями видимости не было бы). Но я хочу увидеть пример, реализовывающий сразу все принципе. Такой пример я сделал на AS3:

Код:
package {
	public class MyClass implements IMyClass {
		public function MyClass() {
			super();
		}
		
		public var angle:Number = 0;
		
		public function getRotation():Number {
			this.calculateValue();
			return this.angle/Math.PI*180;
		}
		
		private function calculateValue():void {
			this.angle = 2*Math.PI*Math.random();
		}

	}
}
Код:
package {
	public class AnotherMyClass extends MyClass {
		public function AnotherMyClass() {
			super();
		}
		
		public override function getRotation():Number {
			var rotation:Number = super.getRotation();
			return rotation/2;
		}
	}
}
Код:
package {
	public interface IMyClass {
		function getRotation():Number;
	}
}
Итак, три класса, MyClass, AnotherMyClass и интерфейс IMyClass. Инкапсулирован метод calculateValue, класс AnotherMyClass наследуется от MyClass, переопределяет метод и использует метод супер-класса, и все это сверху нафаршировано полиморфизмом (сигнатуры методов совпадают, поведение разное) в виде интерфейса IMyClass.

Я прошу привести реализацию этих двух классов на AS1, с учетом и реализацией уровней доступа к свойствам и переменных.

Я согласен на формулировку «AS1 — псевдо-ООП язык», но никак не на «AS1 — ООП-язык». То, что на встроенном уровне есть какие-то классы и простое наличие объектов не делает язык по настоящему объекто-ориентированным.