Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
JAC—access right based encapsulation for Java
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
The Complexity of Type Analysis of Object Oriented Programs
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Empirical Study of Object-Layout Strategies and Optimization Techniques
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Declaring and checking non-null types in an object-oriented language
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
MultiJava: Design rationale, compiler implementation, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Object and reference immutability using Java generics
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Static Members and Cycles in Java Software
ESEM '07 Proceedings of the First International Symposium on Empirical Software Engineering and Measurement
Exception handling: a field study in Java and .NET
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Non-null references by default in java: alleviating the nullity annotation burden
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Understanding the impact of collection contracts on design
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
What shall we tell the children (about inheritance)?
Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
The billion-dollar fix: safe modular circular initialisation
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
The semantics of many OO languages dictates that the constructor of a derived class is a refining extension of one of the base class constructors. As this base constructor runs, it may invoke dynamically bound methods which are overridden in the derived class. These invocations receive an "half baked object", i.e., an object whose derived class portion is uninitialized. Such a situation may lead to confusing semantics and to hidden coupling between the base and the derived. Dynamic binding within constructors also makes it difficult to enhance the programming language with advanced mechanisms for expressing design intent, such as non-null annotation (denoting reference values which can never be null), read-only annotation for fields and variables (expressing the intention that these cannot be modified after they are completely created) and class invariants (part of the famous design by contract methodology). A read-only field for example becomes immutable only after the creation of the enclosing object is complete.