Справочник по Java/Java-Shildt-167OverloadCons2
Java-Shildt-167OverloadCons2
{{Готовность|0%}}
Содержание
- Java-Shildt-100BitLogic
- Java-Shildt-102ByteShift
- Java-Shildt-102MultByTwo
- Java-Shildt-104HexByte
- Java-Shildt-105ByteUShift
- Java-Shildt-106OpBitEquals
- Java-Shildt-108BoolLogic
- Java-Shildt-110Ternary
- Java-Shildt-116IfElse
- Java-Shildt-117SampleSwitch
- Java-Shildt-130ForEach2
- Java-Shildt-133Nested
- Java-Shildt-143BoxDemo
- Java-Shildt-143BoxDemo2
- Java-Shildt-149BoxDemo3
- Java-Shildt-150BoxDemo4
- Java-Shildt-152BoxDemo5
- Java-Shildt-154BoxDemo6
- Java-Shildt-155BoxDemo7
- Java-Shildt-159Stack
- Java-Shildt-160TestStack
- Java-Shildt-161Overload
- Java-Shildt-162Overload2
- Java-Shildt-164Box
- Java-Shildt-165OverloadCons
- Java-Shildt-166PassOb
- Java-Shildt-167OverloadCons2
- Java-Shildt-168CallByValue
- Java-Shildt-169CallByRef
- Java-Shildt-169RetOb
- Java-Shildt-170Recursion
- Java-Shildt-172Recursion2
- Java-Shildt-173AccessTest
- Java-Shildt-174Stack
- Java-Shildt-175TestStack
- Java-Shildt-176UseStatic
- Java-Shildt-177StaticByName
- Java-Shildt-178Length
- Java-Shildt-178TestStack2
- Java-Shildt-180InnerClassDemo
- Java-Shildt-180InnerClassDemo2
- Java-Shildt-181InnerClassDemo3
- Java-Shildt-182StringDemo
- Java-Shildt-183StringDemo2
- Java-Shildt-184CommandLine
- Java-Shildt-184StringDemo3
- Java-Shildt-185PassArray
- Java-Shildt-186VarArgs
- Java-Shildt-187VarArgs2
- Java-Shildt-187VarArgs3
- Java-Shildt-188VarArgs4
- Java-Shildt-191SimpleInheritance
- Java-Shildt-193Access
- Java-Shildt-194DemoBoxWeight
- Java-Shildt-195ColorBox
- Java-Shildt-195RefDemo
- Java-Shildt-197BoxWeight
- Java-Shildt-197DemoSuper
- Java-Shildt-200UseSuper
- Java-Shildt-70Light
- Java-Shildt-71Area
- Java-Shildt-72CharDemo
- Java-Shildt-72CharDemo2
- Java-Shildt-77DynInit
- Java-Shildt-87TwoDArray
- Java-Shildt-89Matrix
- Java-Shildt-89ThreeDMatrix
- Java-Shildt-94BasicMath
- Java-Shildt-96OpEquals
- Java-Shildt-97IncDec
- Java-Shildt-Example
- Java-Shildt-Example2
- Java-Shildt-ForTest
- Java-Shildt-IfSample
Полный справочник по Java. Java SE 6 Edition. 7-е издание. Герберт Шилдт. "Вильямс", Москва - Санкт-Петербург - Киев, 2007, стр.167.
// 167
// В этой версии Box допускает инициализацию одного объекта другим.
class Box {
double width;
double height;
double depth;
// Обратите внимание на этот конструктор. Он использует объект типа Box.
Box(Box ob) { // передача объекта конструктору
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// конструктор, используемый при указании всех измерений
Box(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
// конструктор, используемый, если ни одно из изменений не указано
Box() {
width = -1; // значение -1 используется для указания
height = -1; // не инициализированного
depth = -1; // параллелепипеда
}
// конструктор, используемый при создании куба
Box(double len) {
width = height = depth = len;
}
// вычисление и возврат объема
double volume() {
return width * height * depth;
}
}
class OverloadCons2 {
public static void main(String args[]) {
// создание параллелепипедов с применением различных конструкторов
Box mybox1 = new Box(10, 20, 15);
Box mybox2 = new Box();
Box mycube = new Box(7);
Box myclone = new Box(mybox1); // создание копии объекта mybox1
double vol;
// получение объема первого параллелепипеда
vol = mybox1.volume();
System.out.println("Volume mybox1 equal " + vol);
// получение объема второго параллелепипеда
vol = mybox2.volume();
System.out.println("Volume mybox2 equal " + vol);
// получение объема куба
vol = mycube.volume();
System.out.println("Volume mycube equal " + vol);
// получение объема клона
vol = myclone.volume();
System.out.println("Volume myclone equal " + vol);
}
}