Wriitiing CllassesOriginal Authors: John Lewis and William LoftusModif การแปล - Wriitiing CllassesOriginal Authors: John Lewis and William LoftusModif ไทย วิธีการพูด

Wriitiing CllassesOriginal Authors:

Wriitiing Cllasses
Original Authors: John Lewis and William Loftus
Modified by Patrawadee Tanawongsuwan
2
Outlliine
 Classes and Objects Recap
 Instance and Static Variables
 Scope of Variables
 UML Diagrams
 Method Declaration
 Dot Operator
 toString ()
 this
 Constructors
 Method Overloading
 Method Decomposition
 Method Invocation, Parameter Passing
 Encapsulation
3
Objects and Cllasses
 A class defines a concept, and an object represents
the embodiment of a class
 A class can be used to create multiple objects
4
Objects and Cllasses
Bank
Account
A class
(the concept)
John’s Bank Account
Balance: $5,257
An object
(the realization)
Bill’s Bank Account
Balance: $1,245,069
Mary’s Bank Account
Balance: $16,833
Multiple objects
from the same class
5
Cllasses
 A class is a model or pattern from which objects
are created
 For example, the String class is used to define
String objects
 The String class was provided for us by the Java
standard class library
 But we can also write our own classes that define
specific objects that we need
6
 A class contains data (or variable) declarations
and method declarations
int x, y;
char ch;
Data declarations
Method declarations
Cllasses
7
The Dog Cllass
 We could write our own Dog class
 In Dog, we could define the following data:
• count
• age
• hairColor
 We might also define the following methods:
• a Dog constructor
• a bark method
• a wag method
• a add2 method
8
Instance Variiablles
 The age variable in the Dog class is called
instance variable (or instance data) because each
instance (object) of the Dog class has its own
age 5
gaga
age 8
gogo
int age;
class Dog
9
Statiic Variiablles
 Variables can also be static
 Static variables (or static data) are also called
class variables
age 5
gaga
age 8
gogo
int age;
class Dog
static int count; 12
10
Statiic Variiablles
 Normally, each object has its own data space, but
if a variable is declared as static, only one copy
of the variable exists
 Memory space for a static variable is created when
the class in which it is declared is loaded
 All objects created from the class share static
variables
 Changing the value of a static variable in one
object changes it for all others
11
Static Variables: Examplle of Poor Desiign
 When a variable should be static but it is not.
int age;
class Dog
int count; count 1
gaga
age 5
gogo
count 2
age 8
12
Statiic Variiablles: Examplle of Poor Desiign
 When a variable should not be static but it is.
static int age;
class Dog
static int count;
gaga
gogo
1
5
2
8
13
Scope of Variiablles
// method bark
int x;
// method wag
// method add2
int x;
int age;
class Dog
•count is static variable
•age is instance variable
•count and age are visible
to every method
•x is a local variable
•x is visible only within each
method -- each bark and add2
has its own copy of x (and
their values might be
different)
•x is NOT visible to wag
static int count;
14
Scope of Variiablles
 The scope of a variable is the area in a program in
which that variable can be used (referenced)
 Variables declared at the class level (such as
count and age) can be used by all methods in that
class
 Variables declared within a method (such as x) can
be used only in that method
15
UML Diiagrams
 UML stands for the Unified Modeling Language
 UML diagrams show relationships among classes and
objects
 A UML class diagram consists of one or more
classes, each with sections for the class name,
attributes, and methods
 Lines between classes represent associations
 Associations can show multiplicity
16
UML Cllass Diiagrams
Prog1
main (args : String[]) :
void
Dog
count : int
age : int
hairColor : String
Dog()
bark() : void
wag() : void
add2(x : int, y : int) :
int
1 2
17
UML Object Diiagrams
 A UML object diagram consists of one or more
instantiated objects.
 It is a snapshot of the objects during an executing
program, showing data values
gaga : Dog
age = 1
gogo : Dog
age = 8
18
Method Header
 A method declaration begins with a method header
method
name
return
type
parameter list
The parameter list specifies the type
and name of each parameter
int add2 (int num1, int num2)
19
Method Body
 The method header is followed by the method body
int add2 (int num1, int num2)
{
int sum;
sum = num1 + num2;
return sum;
}
The return expression must be
consistent with the return type
20
The return Statement
 The return type of a method indicates the type of
value that the method sends back to the calling
location
 A method that does not return a value has a void
return type
21
The return Statement
 A method finishes when a return statement is
reached; any line of code after return is not
executed.
public int myAbsolute (int x) {
if (x >= 0)
return (x);
x = 0-x;
System.out.println (x);
return (x);
}
22
Examplle of Cllass Dog
public class Dog {
public static int count = 0;
public int age;
public String hairColor;
public void bark () {
if (age >= 1)
System.out.println ("Bow bow!!");
}
public void wag () {
// ...
}
public static void add2 (int num1, int num2) {
System.out.println (num1+num2);
}
}
23
Dot Operator
 Variables and methods can be accessed using dot
operator.
public class TestDog {
public static void main (String[] args) {
Dog gaga = new Dog ();
gaga.count++;
gaga.age = 5;
gaga.hairColor = "red";
gaga.bark ();
Dog.add2 (5, 8);
System.out.println ("gaga: (" + gaga.count + "," +
gaga.age + "," + gaga.hairColor + ")");
}
}
Bow bow!!
13
gaga: (1,5,red)
24
toStriing ()
public class Dog {
public static int count = 0;
public int age;
public String hairColor;
public void bark () {
if (age >= 1)
System.out.println ("Bow bow!!");
}
public void wag () {
// ...
}
public static void add2 (int num1, int num2) {
System.out.println (num1+num2);
}
public String toString () {
return ("(" + count + ",“
+ age + ","
+ hairColor + ")");
}
}
25
toStriing ()
public class TestDog {
public static void main (String[] args) {
Dog gaga = new Dog ();
gaga.count++;
gaga.age = 5;
gaga.hairColor = "red";
gaga.bark ();
Dog.add2 (5, 8);
System.out.println (gaga);
}
}
Bow bow!!
13
(1,5,red)
26
Statiic Method
 A method can be invoked through an object:
Dog gaga = new Dog ();
gaga.bark ();
 A static method can be invoked through its
class:
Dog.add2 ();
public class Dog {
public void bark () {
// ...
}
public static void add2 (int num1, int num2) {
// ...
}
}
27
The thiis Reference
 The this reference allows an object to refer to
itself
 That is, the this reference, used inside a method,
refers to the object through which the method is
being executed
public void bark () {
int age = 1;
if (this.age >= age)
System.out.println ("Bow bow!!");
}
28
Constructors
 A constructor is a special method that is used to
initialize a newly created object. It is invoked
with new.
 When writing a constructor, remember that:
• it has the same name as the class
• it does not return a value
• it has no return type, not even void
• it typically sets the initial values of instance variables
 The programmer does not have to define a
constructor for a class.
 Each class has a default constructor that accepts
no parameters
29
Constructors
 If we write no constructor, a default constructor
will exist.
public class Dog {
/*
* As if there were the following lines of code
*
* Dog () {}
*/
}
 To create a new Dog:
Dog gaga = new Dog ();
30
Constructors
 One may create his/her own constructor, in which
case the default will go away.
public class Dog {
Dog (int newAge, String newHairColor) {
count++;
age = newAge;
hairColor = newHairColor;
}
}
 To create a new Dog:
Dog gaga = new Dog (5, “red”); // ok
Dog gogo = new Dog (); // error
31
Overlloadiing Methods
// ...
boolean isFive (int x) {
return (x == 5);
}
boolean isFive (double x) {
return (x == 5);
}
boolean isFive (char c) {
return (c == '5');
}
boolean isFive (String s) {
return (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("five") ||
s.equals ("FIVE") ||
s.equals ("Five"));
}
// ...
 Method overloading
is the process of
using the same
method name for
multiple methods
32
Overlloadiing Methods
// ...
boolean isFive (int x) {
return (x == 5);
}
boolean isFive (double x) {
return (x == 5);
}
boolean isFive (char c) {
return (c == '5');
}
boolean isFive (String s) {
return (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("five") ||
s.equals ("FIVE") ||
s.equals ("Five"));
}
// ...
 To determine which
method is being
called, use
signature, which
includes the
method’s name,
the number, type,
and order of the
parameters
 The return type of
the method is not
part of signature
33
Overlloadiing Methods
isFive (“eight”);
isFive (37);
// ...
boolean isFive (int x) {
return (x == 5);
}
boolean isFive (double x) {
return (x == 5);
}
boolean isFive (char c) {
return (c == '5');
}
boolean isFive (String s) {
return (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("five") ||
s.equals ("FIVE") ||
s.equals ("Five"));
}
// ...
34
Overlloadiing Methods
sum (5, 8);
a1 = new int[]{5,
8, 37};
sum (a1);
// ...
int sum (int x1, int x2) {
return (x1 + x2);
}
int sum (int x1, int x2, int x3) {
return (x1 + x2 + x3);
}
int sum (int[] arr) {
int i, sum = 0, maxI = arr.length;
for (i = 0; i < maxI; i++)
sum += arr[i];
return (sum);
}
// ...
35
Overlloaded Methods
 The println method is overloaded:
println (String s)
println (int i)
println (double d)
println (Object x)
and so on...
 The following lines invoke different versions of
the println method:
System.out.println ("The total is:");
System.out.println (total);
System.out.println (gaga);
36
Overlloadiing Constructors
 Constructors can be overloaded
 Overloaded constructors provide multiple ways to
initialize a new object
public class Dog {
// ...
Dog () {
count++;
}
Dog (int newAge) {
count++;
age = newAge;
}
37
Overloading Constructors
Dog (String newHairColor) {
count++;
hairColor = newHairColor;
}
Dog (int newAge, String newHairColor) {
count++;
age = newAge;
hairColor = newHairColor;
}
// ...
}
 To create a new Dog:
Dog gaga = new
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
Wriitiing Cllasses
ผู้เขียนต้นฉบับ: จอห์นเลวิสและวิลเลียมลอฟตัส
โดย Patrawadee Tanawongsuwan
2
Outlliine
คลาสและวัตถุปะยางรถ
ตัวอย่างและตัวแปรคง
ขอบเขตของตัวแปร
UML ไดอะแกรม
วิธีรายงาน
จุดดำเนิน
toString ()
นี้
ตัวสร้าง
มากเกินไปวิธี
วิธีแยกส่วนประกอบ
เมธ พารามิเตอร์ผ่าน
Encapsulation
3
วัตถุและ Cllasses
คลาสที่กำหนดแนวคิด และวัตถุแทน
ลื่นของคลา
คลาสที่สามารถใช้เพื่อสร้างวัตถุ
4
วัตถุและ Cllasses
ธนาคาร
บัญชี

(the concept) คลา
จอห์นธนาคาร
ดุล: $5, 257

(the realization) เป็นวัตถุ
บิลธนาคาร
ดุล: $1,245, 069
รีย์ธนาคาร
ดุล: $16, 833
วัตถุ
จากประเภทเดียวกัน
5
Cllasses
คลาสที่เป็นแบบจำลองหรือรูปแบบจากวัตถุที่
สร้าง
คลาสตริงที่ใช้ในการกำหนด
สายอักขระวัตถุ
คลาสสายอักขระได้รับเกี่ยวกับ Java
ไลบรารีคลาสมาตรฐาน
แต่เรายังสามารถเขียนของเราเองเรียนที่กำหนด
วัตถุเฉพาะที่เราต้อง
6
คลาประกอบด้วยรายงานข้อมูล (หรือตัวแปร)
และวิธีประกาศ
int x, y;
อักขระ ch;
ข้อมูลประกาศ
วิธีประกาศ
Cllasses
7
Cllass สุนัข
เราสามารถเขียนคลาสุนัขของเราเอง
ในสุนัข เราไม่สามารถกำหนดข้อมูลต่อไปนี้:
•จำนวน
•อายุ
• hairColor
นอกจากนี้เรายังอาจกำหนดวิธีต่อไปนี้:
•เป็นตัวสร้างสุนัข
•วิธีเปลือก
•วิธี wag
•วิธี add2
8
Variiablles อินสแตนซ์
เรียกว่าตัวแปรอายุในระดับสุนัข
อินสแตนซ์ตัวแปร (หรืออินสแตนซ์ข้อมูล) เนื่องจากแต่ละ
(วัตถุ) อินสแตนซ์ของคลาสุนัขได้เอง
อายุ 5
กาก้า
อายุ 8
โบ
int อายุ;
เรียนสุนัข
9
Statiic Variiablles
ตัวแปรยังสามารถคง
ตัวแปรคงที่ (หรือข้อมูลที่คงที่) ยังเรียกว่า
คลาสตัวแปร
อายุ 5
กาก้า
อายุ 8
โบ
int อายุ;
เรียนสุนัข
int คงนับ 12
10
statiic Variiablles
ปกติ แต่ละวัตถุมีพื้นที่ข้อมูลตนเอง แต่
ถ้าตัวแปรถูกประกาศเป็นคง เพียงหนึ่งคัดลอก
ของตัวแปรอยู่
สร้างพื้นที่หน่วยความจำสำหรับตัวแปรคงที่เมื่อ
โหลดคลาสที่ถูกประกาศไว้
วัตถุทั้งหมดที่สร้างจากคลาสร่วมคง
แปร
เปลี่ยนค่าของตัวแปรคงที่ในหนึ่ง
วัตถุเปลี่ยนแปลงคนทั้งหมด
11
ตัวแปรคง: Examplle ดีไซน์ดี
เมื่อตัวแปรควรจะคงที่ แต่ไม่ได้
int อายุ;
เรียนสุนัข
int จำนวน นับ 1
กาก้า
อายุ 5
โบ
นับ 2
อายุ 8
12
Statiic Variiablles: Examplle ดีไซน์ดี
เมื่อตัวแปรควรไม่คงที่แต่หมู่เกาะ
int คงอายุ;
คลาสุนัข
int คงนับ;
กาก้า
โบ
1
5
2
8
13
ขอบเขต Variiablles
/ / วิธีเปลือก
int x;
/ / วิธีกระดิก
/ / วิธี add2
int x;
int อายุ;
เรียนสุนัข
•count เป็นตัวแปรคง
•age เป็นตัวแปรอินสแตนซ์
•count และอายุจะเห็น
ทุกวิธี
•x เป็นตัวแปรท้องถิ่น
•x อยู่เฉพาะภายในแต่ละ
วิธี - ละเปลือกและ add2
มีสำเนาของ x (และ
ค่าอาจ
อื่น)
•x ไม่เห็นกระดิก
int คงนับ;
14
ขอบเขต Variiablles
ขอบเขตของตัวแปรเป็นพื้นที่ในโปรแกรมใน
ซึ่งตัวแปรที่ใช้ (อ้างอิง)
ประกาศตัวแปรระดับชั้น (เช่น
จำนวนและอายุ) สามารถใช้วิธีการทั้งหมดในที่
คลา
สามารถตัวแปรที่ถูกประกาศภายในวิธีการ (เช่น x)
ใช้ในวิธีที่
15
UML Diiagrams
UML ถึงร่วมสร้างโมเดลภาษา
UML ไดอะแกรมแสดงความสัมพันธ์ระหว่างชนชั้น และ
วัตถุ
คลาส UML ไดอะแกรมประกอบด้วยอย่างน้อยหนึ่ง
คลา แต่ละส่วนสำหรับชื่อคลาส,
คุณลักษณะ และวิธี
บรรทัดระหว่างเรียนแสดงถึงความสัมพันธ์ของ
สมาคมสามารถแสดงมากมายหลายหลาก
16
UML Cllass Diiagrams
Prog1
หลัก (อาร์กิวเมนต์: String[]):
โมฆะ
หมา
นับ: int
อายุ: int
hairColor: สตริ
< > Dog()
bark(): void
wag(): โมฆะ
add2 (x: int, y: int):
int
1 2
17
Diiagrams วัตถุ UML
A UML ไดอะแกรมวัตถุประกอบด้วยอย่างน้อยหนึ่ง
สร้างอินสแตนซ์วัตถุ
เป็นของวัตถุในระหว่างการดำเนิน
โปรแกรม แสดงค่าข้อมูล
กาก้า: สุนัข
อายุ = 1
โบ: สุนัข
อายุ = 8
18
หัวข้อวิธี
รายงานวิธีเริ่มต้น ด้วยหัวข้อวิธี
วิธี
ชื่อ
กลับ
ชนิด
รายการพารามิเตอร์
รายการพารามิเตอร์ระบุชนิด
และชื่อของแต่ละพารามิเตอร์
int add2 (int num1, int num2)
19
วิธีร่างกาย
หัวข้อวิธีตามร่างกายวิธี
int add2 (int num1, int num2)
{
int รวม;
รวม = num1 num2;
ผลคืน;
}
นิพจน์ที่ส่งคืนต้อง
สอดคล้องกับชนิดการส่งคืน
20
ยอดคืน
ชนิดการส่งคืนของวิธีการบ่งชี้ชนิดของ
ค่าที่วิธีส่งกลับไปยังโทรศัพท์ที่
ตั้ง
วิธีการคืนค่าได้เป็นโมฆะ
กลับชนิด
21
ยอดส่งคืน
วิธีการเสร็จสิ้นเมื่อคำคืน
ถึง ไม่มีบรรทัดใด ๆ ของรหัสหลังจากกลับ
ดำเนิน
int สาธารณะ myAbsolute (int x) {
ถ้า (x > = 0)
กลับ (x);
x = 0 x;
System.out.println (x);
กลับ (x);
}
22
Examplle Cllass สุนัข
คลาสาธารณะสุนัข {
int สาธารณะคงนับ = 0;
int สาธารณะอายุ;
สาธารณะสาย hairColor;
เปลือกโมฆะสาธารณะ() {
ถ้า (อายุ > = 1)
System.out.println ("โบว์โบว์!!");
}
wag โมฆะสาธารณะ() {
/ /...
}
add2 โมฆะคงสาธารณะ (int num1, int num2) {
System.out.println (num1 num2);
}
}
23
ดำเนินจุด
ตัวแปรและเมธอดสามารถเข้าถึงได้โดยใช้จุด
ตัวดำเนินการ
สาธารณะคลา TestDog {
สาธารณะคงโมฆะหลัก (สตริงที่[]อาร์กิวเมนต์) {
หมากาก้า =()สุนัขใหม่
gaga.count;
กาก้าได้อายุ = 5;
gaga.hairColor = " red";
gaga.bark ()
Dog.add2 (5, 8);
System.out.println ("กาก้า: ("gaga.count", "
gaga.age", " gaga.hairColor ") ");
}
}
โบว์โบว์!!
13
กาก้า: (1.5 สีแดง)
24
(toStriing)
คลาสาธารณะหมา {
int สาธารณะคงนับ = 0;
int สาธารณะอายุ;
สาธารณะสาย hairColor;
เปลือกโมฆะสาธารณะ() {
ถ้า (อายุ > = 1)
System.out.println ("โบว์โบว์!!");
}
(wag สาธารณะโมฆะ) {
/ /...
}
สาธารณะคงโมฆะ add2 (int num1, int num2) {
System.out.println (num1 num2);
}
สาธารณะสาย toString () {
กลับ (" ("จำนวน", "
อายุ
hairColor "hairColor")"");
}
}
25
(toStriing)
สาธารณะคลา TestDog {
สาธารณะคงโมฆะหลัก (สตริงที่[]อาร์กิวเมนต์) {
หมากาก้า =()สุนัขใหม่
gaga.count;
gaga.age = 5;
gaga.hairColor = " red";
gaga.bark ()
Dog.add2 (5, 8);
System.out.println (กาก้า);
}
}
โบว์โบว์!!
13
(1,5,red)
26
วิธี statiic
สามารถเรียกวิธีการผ่านวัตถุ:
หมากาก้า =()สุนัขใหม่
gaga.bark ();
วิธีการแบบคงที่สามารถเรียกผ่าน its
class:
Dog.add2 ();
คลาสาธารณะสุนัข {
เปลือกโมฆะสาธารณะ() {
/ /...
}
add2 โมฆะคงสาธารณะ (int num1, int num2) {
/ /...
}
}
27
thiis อ้างอิง
อ้างอิงนี้ช่วยให้วัตถุที่อ้างอิงถึง
เอง
คือ นี้อ้างอิง, ใช้ในวิธี,
หมายถึงวัตถุซึ่งเป็นวิธีการ
กำลังดำเนิน
เปลือกโมฆะสาธารณะ() {
อายุ int = 1;
ถ้า (this.age > = age)
System.out.println ("โบว์โบว์!!");
}
28
ตัวสร้าง
เป็นตัวสร้างเป็นวิธีการพิเศษที่ใช้
เตรียมใช้งานวัตถุสร้างขึ้นใหม่ มันจะเรียก
ด้วยใหม่.
เมื่อเขียนเป็นตัวสร้าง จำไว้ว่า:
•มีชื่อเดียวกับคลาส
•จะไม่ส่งคืนค่า
•ไม่ส่งคืนชนิด โมฆะแม้ไม่มี
•มันจะตั้งค่าเริ่มต้นของตัวแปรอินสแตนซ์
โปรแกรมเมอร์ที่ไม่มีการกำหนดเป็น
ตัวสร้างสำหรับคลาสบการ
แต่ละชั้นมีตัวสร้างเริ่มต้นที่ยอมรับ
พารามิเตอร์ไม่
29
ตัวสร้าง
ถ้าเราเขียนไม่มีตัวสร้าง ตัวสร้างการเริ่มต้น
จะมี.
คลาสาธารณะสุนัข {
/ *
* ว่ามีบรรทัดของรหัสต่อไปนี้
*
* สุนัข(){}
* /
}
สร้างสุนัขใหม่:
หมากาก้า =()สุนัขใหม่;
30
ตัวสร้าง
หนึ่งอาจสร้างตัวสร้างเขา/เธอเอง ซึ่ง
กรณีเริ่มจะหายไปได้
คลาสาธารณะสุนัข {
สุนัข (int newAge สตริ newHairColor) {
นับ;
อายุ = newAge;
hairColor = newHairColor;
}
}
สร้างสุนัขใหม่:
หมากาก้า =สุนัขใหม่ (5 "แดง"); / / ตกลง
สุนัขโกโก้ =สุนัขใหม่() / / ข้อผิดพลาด
31
วิธี Overlloadiing
/ /...
บู isFive (int x) {
กลับ (x == 5);
}
บู isFive (double x) {
กลับ (x == 5);
}
บู isFive (อักขระ c) {
กลับ (c == '5');
}
บู isFive (สาย s) {
กลับ (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("5") ||
s.equals ("5") ||
s.equals ("5"));
}
/ /...
มากเกินไปวิธี
คือกระบวนการ
ใช้เหมือนกัน
ชื่อวิธี
หลายวิธี
32
Overlloadiing วิธี
/ /...
บู isFive (int x) {
กลับ (x == 5);
}
บู isFive (double x) {
กลับ (x == 5);
}
บู isFive (อักขระ c) {
กลับ (c == '5');
}
บู isFive (สาย s) {
กลับ (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("5") ||
s.equals ("5") ||
s.equals ("5"));
}
/ /...
กำหนดซึ่ง
วิธีกำลัง
เรียกว่า ใช้
ลายเซ็น ซึ่ง
รวม
ชื่อของวิธีการ,
หมายเลข ชนิด,
และลำดับของ
พารามิเตอร์
ชนิดการส่งคืนของ
วิธีไม่
ส่วนของลายเซ็น
33
วิธี Overlloadiing
isFive ("แปด");
isFive (37);
/ /...
บู isFive (int x) {
กลับ (x == 5);
}
บู isFive (double x) {
กลับ (x == 5);
}
บู isFive (อักขระ c) {
กลับ (c == '5');
}
isFive บูลีน (สาย s) {
กลับ (s.equals ("5") ||
s.equals ("5.0") ||
s.equals ("5") ||
s.equals ("5") ||
s.equals ("5"));
}
/ /...
34
Overlloadiing วิธี
ผลรวม (5, 8);
a1 ใหม่ int [] = { 5,
8, 37 };
รวม (a1) ;
//...
int รวม (int x 1, int x 2) {
กลับ (x 1 x 2);
}
int รวม (int x 1, x 2 int, int x 3) {
กลับ (x 1 x 2 x 3);
}
int รวม (int []ตารางเข้า) {
int i ผลรวม = 0 แม็กซี่ = arr.length;
สำหรับ (ฉัน = 0 ฉัน < แม็กซี่ )
ผลรวม =ตารางเข้า [i];
กลับ (ผลรวม);
}
/ /...
35
วิธี Overlloaded
แท้วิธี println:
println (สตริง s)
println (int ฉัน)
println (ห้อง d)
println (วัตถุ x)
และอื่น ๆ...
การเรียกรุ่นต่าง ๆ
println method:
System.out.println (" is:");
System.out.println รวม (total);
System.out.println (กาก้า);
36
ตัวสร้าง Overlloadiing
สามารถเกิดตัวสร้าง
Overloaded ตัวสร้างมีหลายวิธีการ
เริ่มต้นวัตถุใหม่
คลาสาธารณะสุนัข {
/ /...
สุนัข() {
นับ;
}
สุนัข (int newAge) {
นับ;
อายุ = newAge;
}
37
ตัวสร้างมากเกินไป
สุนัข (สาย newHairColor) {
นับ;
hairColor = newHairColor;
}
สุนัข (int newAge สตริ newHairColor) {
นับ;
อายุ = newAge;
hairColor = newHairColor;
}
/ /...
}
สร้างสุนัขใหม่:
หมากาก้า =ใหม่
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
Wriitiing Cllasses
ผู้เขียนต้นฉบับ: จอห์นลูอิสและวิลเลียม Loftus
ดัดแปลงโดย Patrawadee Tanawongsuwan
2
Outlliine
? ชั้นเรียนและวัตถุสรุป
? อินสแตนซ์และคงที่ตัวแปร
? ขอบเขตของตัวแปร
? UML ไดอะแกรม
? วิธีการประกาศ
? Dot Operator
? toString ()
? นี้
? ก่อสร้าง
? วิธีการมากไป
? วิธีการย่อยสลาย
? วิธีการภาวนา, ผ่านพารามิเตอร์
? Encapsulation
3
วัตถุและ Cllasses
? ชั้นจะกำหนดแนวคิดและวัตถุที่แสดงให้เห็นถึง
ศูนย์รวมของการเรียน
? ชั้นสามารถใช้ในการสร้างวัตถุหลาย
4
วัตถุและ Cllasses
ธนาคาร
บัญชี
ชั้น
(แนวคิด)
ของจอห์นบัญชีธนาคาร
Balance: $ 5257
วัตถุ
(ความตระหนัก)
บัญชีธนาคารของบิล
Balance: $ 1,245,069
แมรี่บัญชีธนาคาร
Balance: $ 16,833
หลายวัตถุ
จากที่เดียวกัน ชั้น
5
Cllasses
? ชั้นเป็นรูปแบบหรือรูปแบบจากการที่วัตถุที่
ถูกสร้างขึ้น
? ตัวอย่างเช่นชั้น String จะใช้ในการกำหนด
วัตถุ String
? ชั้น String ถูกจัดให้สำหรับเราโดย Java
ห้องสมุดชั้นมาตรฐาน
? แต่เรายังสามารถเขียนชั้นเรียนของเราเองที่กำหนด
วัตถุที่ระบุว่าเราต้อง
6
? ชั้นมีข้อมูล (หรือตัวแปร) การประกาศ
และการประกาศวิธี
int x, y;
ถ่านช;
การประกาศข้อมูล
การประกาศวิธี
Cllasses
7
สุนัข Cllass
? เราสามารถเขียนชั้นสุนัขของเราเอง
? ในสุนัขที่เราสามารถกำหนดข้อมูลต่อไปนี้
นับ•
•อายุ
•สีผม
? นอกจากนี้เรายังอาจกำหนดวิธีการดังต่อไปนี้
•สร้างสุนัข
•วิธีเปลือก
•วิธีกระดิก
•วิธี ADD2
8
อินสแตนซ์ Variiablles
? ตัวแปรอายุในระดับที่เรียกว่าสุนัข
เช่นตัวแปร (หรือข้อมูลเป็นต้น) เพราะแต่ละ
กรณี (วัตถุ) ของชั้นมีสุนัขของตัวเอง
อายุ 5
โง่
อายุ 8
gogo
อายุ int;
สุนัขชั้น
9
Statiic Variiablles
? ตัวแปรยังสามารถเป็นแบบคงที่
? คงที่ตัวแปร (หรือข้อมูลคงที่) ที่เรียกว่า
ตัวแปรระดับ
อายุ 5
โง่
อายุ 8
gogo
int อายุ
สุนัขชั้น
นับ int คง; 12
10
Statiic Variiablles
? โดยปกติแต่ละวัตถุมีพื้นที่ข้อมูลของตัวเอง แต่
ถ้าตัวแปรถูกประกาศเป็นแบบคงที่เพียงสำเนา
ของตัวแปรที่มีอยู่
? พื้นที่หน่วยความจำสำหรับตัวแปรคงที่ถูกสร้างขึ้นเมื่อ
ชั้นในที่มีการประกาศการโหลด
? วัตถุทั้งหมดที่สร้างขึ้นจากส่วนแบ่งระดับคงที่
ตัวแปร
? การเปลี่ยนค่าของตัวแปรคงที่ในหนึ่ง
วัตถุมีการเปลี่ยนแปลงสำหรับคนอื่น ๆ ทั้งหมด
11
ตัวแปรคงที่: Examplle ของแย่ Desiign
? เมื่อตัวแปรที่ควรจะเป็นแบบคงที่ แต่ก็ไม่ได้
int อายุ
สุนัขชั้น
นับ int; นับ 1
กาก้า
อายุ 5
gogo
นับ 2
อายุ 8
12
Statiic Variiablles: Examplle ของแย่ Desiign
? เมื่อตัวแปรไม่ควรจะคงที่ แต่มันก็เป็น
อายุ int คง;
สุนัขชั้น
นับ int คง
โง่
gogo
1
5
2
8
13
ขอบเขตของ Variiablles
/ / วิธีเปลือก
int x;
/ / วิธีกระดิก
/ / วิธี ADD2
int x;
int อายุ
ชั้นสุนัข
•นับเป็นตัวแปรคงที่
•อายุตัวแปรเช่น
•นับและอายุจะมองเห็นได้
ในทุกวิธีการ
• x เป็นตัวแปรท้องถิ่น
x •จะปรากฏเฉพาะในแต่ละ
วิธี - แต่ละเปลือกและ ADD2
มีสำเนาของตัวเองของ x ( และ
ค่าของพวกเขาอาจจะมีความ
แตกต่างกัน)
• x ไม่สามารถมองเห็นได้กระดิก
นับ int คงที่
14
ขอบเขตของ Variiablles
? ขอบเขตของตัวแปรเป็นพื้นที่ในโปรแกรม
ซึ่งตัวแปรที่สามารถนำมาใช้ (อ้างอิง)
? ตัวแปรที่ประกาศในระดับชั้นเรียน (เช่น
นับและอายุ) สามารถนำมาใช้โดยวิธีการทั้งหมดในการที่
ระดับ
? ตัวแปรที่ประกาศภายในวิธี (เช่น x) สามารถ
จะใช้เฉพาะในวิธีการที่
15
UML Diiagrams
? UML ย่อมาจากภาษา Unified Modeling
? แผนภาพแสดงความสัมพันธ์ระหว่างการเรียนและ
วัตถุ
? แผนภาพชั้น UML ประกอบด้วยหนึ่งหรือมากกว่าหนึ่ง
ชั้นเรียนแต่ละคนมีส่วนสำหรับชื่อชั้น,
คุณสมบัติและวิธีการ
? เส้นแบ่งระหว่างชั้นเรียนที่เป็นตัวแทนของสมาคม
? สมาคมสามารถแสดงหลายหลาก
16
UML Cllass Diiagrams
Prog1
หลัก (args: String []):
เป็นโมฆะ
สุนัข
นับ int
อายุ int
สีผม: String
<> สุนัข ()
เปลือก (): เป็นโมฆะ
กระดิก (): เป็นโมฆะ
ADD2 (x: int, y: int):
int
1 2
17
Diiagrams UML วัตถุ
? แผนภาพวัตถุ UML ประกอบด้วยหนึ่งหรือมากกว่า
วัตถุ instantiated
? มันเป็นภาพรวมของวัตถุในระหว่างการดำเนินการ
โปรแกรมการแสดงค่าข้อมูล
โง่: สุนัข
อายุ = 1
gogo: สุนัข
อายุ = 8
18
วิธีส่วนหัว
? การประกาศวิธีการเริ่มต้นด้วยส่วนหัวของวิธีการ
วิธีการ
ชื่อ
ผลตอบแทน
ประเภท
รายการพารามิเตอร์
รายการพารามิเตอร์ระบุชนิด
และชื่อของแต่ละพารามิเตอร์
ADD2 int (int num1, num2 int)
19
วิธีร่างกาย
? ส่วนหัวของวิธีการที่จะตามมาด้วยวิธีการที่ร่างกาย
ADD2 int (int num1, num2 int)
{
int ผลรวม;
รวม = num1 + num2;
ผลตอบแทนรวม;
}
กลับแสดงออกจะต้อง
สอดคล้องกับประเภทกลับ
20
งบกลับมา
? ประเภทการกลับมาของวิธีการระบุประเภทของ
ค่าที่วิธีการที่จะส่งกลับไปยังโทร
สถาน
? วิธีการที่ไม่ส่งกลับค่ามีช่องว่างที่
พิมพ์กลับ
21
งบกลับมา
? วิธีการเสร็จสิ้นเมื่อคำสั่งกลับเป็น
ถึง; บรรทัดของรหัสใด ๆ หลังจากที่กลับไม่ได้รับการ
ดำเนินการ
ของประชาชน int myAbsolute (int x) {
ถ้า (x> = 0)
ผลตอบแทน (x);
x = 0-x;
System.out.println (x);
กลับ (x);
}
22
Examplle ของ Cllass สุนัข
สุนัขเรียนสาธารณะ {
ประชาชนนับ int คงที่ = 0;
อายุ int สาธารณะ
สีผมสาธารณะ String;
เปลือกโมฆะสาธารณะ () {
ถ้า (อายุ> = 1)
System.out.println ("! โบว์โบว์" );
}
กระดิกโมฆะสาธารณะ () {
/ / ...
}
ประชาชนเป็นโมฆะ ADD2 คงที่ (int num1, num2 int) {
System.out.println (num1 + num2);
}
}
23
จุดประกอบ
? ตัวแปรและวิธีการที่สามารถเข้าถึงได้โดยใช้จุด
ประกอบ
เรียนสาธารณะ TestDog ​​{
ประชาชนเป็นโมฆะคงหลัก (String args []) {
สุนัขโง่ = สุนัขใหม่ ();
; gaga.count + + +
gaga.age = 5;
gaga.hairColor = "สีแดง" ;
gaga.bark ();
Dog.add2 (5, 8);
System.out.println ("กาก้า: (" + gaga.count + "," +
gaga.age + "," + + gaga.hairColor ") ");
}
}
โบว์น้อม!
13
กาก้า (1,5, สีแดง)
24
toStriing ()
เรียนสาธารณะสุนัข {
สาธารณะคงนับ int = 0;
อายุ int สาธารณะ
สีผมสาธารณะ String;
เปลือกโมฆะสาธารณะ () {
ถ้า ( อายุ> = 1)
System.out.println ("โบว์น้อม!");
}
เป็นโมฆะสาธารณะกระดิก () {
/ / ...
}
ประชาชนเป็นโมฆะ ADD2 คงที่ (int num1, num2 int) {
System.out.println ( num1 + num2);
}
สาธารณะ String toString () {
กลับ ("(" + + นับ ","
+ อายุ + ","
+ สีผม + ")");
}
}
25
toStriing ()
TestDog ​​สาธารณะคุณภาพระดับ {
เป็นโมฆะคงที่สาธารณะ หลัก (String args []) {
สุนัขโง่ = สุนัขใหม่ ();
gaga.count + +
gaga.age = 5;
gaga.hairColor = "สีแดง";
gaga.bark ();
Dog.add2 (5, 8);
ระบบ . out.println (โง่);
}
}
โบว์น้อม!
13
(1,5, สีแดง)
26
วิธี Statiic
วิธีสามารถเรียกผ่านวัตถุ:
หมาโง่ = สุนัขใหม่ ();
gaga.bark ();
? วิธีการคงสามารถเรียกผ่าน
ชั้น:
Dog.add2 ();
สุนัขเรียนสาธารณะ {
ประชาชนเป็นโมฆะเปลือก () {
/ / ...
}
ประชาชนเป็นโมฆะ ADD2 คงที่ (int num1, num2 int) {
/ / ...
}
}
27
อ้างอิง thiis
? อ้างอิงนี้จะช่วยให้วัตถุที่จะอ้างถึง
ตัวเอง
? นั่นคือการอ้างอิงนี้ใช้ในวิธีการ
หมายถึงวัตถุที่ผ่านวิธีการที่จะ
ถูกดำเนินการ
เปลือกโมฆะสาธารณะ () {
int อายุ = 1;
ถ้า (this.age> = อายุ)
System.out.println (" น้อมน้อม ");!
}
28
ก่อสร้าง
? คอนสตรัคเป็นวิธีการพิเศษที่จะใช้ในการ
เริ่มต้นของวัตถุที่สร้างขึ้นใหม่ มันถูกเรียก
ใหม่
? เมื่อเขียนคอนสตรัคจำไว้ว่า:
•มีชื่อเดียวกับคลาส
•มันไม่ส่งกลับค่า
•มันไม่มีชนิดกลับไม่เป็นโมฆะแม้
•มันมักจะตั้งค่าเริ่มต้นของตัวแปรเช่น
? โปรแกรมเมอร์ไม่ได้มีการกำหนด
ตัวสร้างการเรียน
? แต่ละชั้นจะมีคอนสตรัคเริ่มต้นที่ยอมรับ
ไม่มีพารามิเตอร์
29
ก่อสร้าง
? ถ้าเราไม่ได้เขียนสร้าง, สร้างการเริ่มต้น
จะอยู่
สุนัขเรียนสาธารณะ {
/ *
* ณ ถ้ามีบรรทัดต่อไปนี้ของรหัส
*
สุนัข * () {}
* /
}
? เพื่อสร้างสุนัขใหม่
สุนัขโง่ = สุนัขใหม่ ();
30
ก่อสร้าง
? หนึ่งอาจสร้าง / สร้างของเขาของเธอเองซึ่งใน
กรณีที่เริ่มต้นจะหายไป
ชั้นสุนัขของประชาชน {
สุนัข (int Newage, String newHairColor) {
นับ + +;
อายุ = Newage;
สีผม = newHairColor;
}
}
? เพื่อสร้างสุนัขใหม่
สุนัขโง่ = สุนัขใหม่ (5, "สีแดง"); / / ok
gogo สุนัขหมา = ใหม่ (); / / ข้อผิดพลาด
31
วิธี Overlloadiing
/ / ...
isFive บูลีน (int x) {
กลับ (x == 5);
}
isFive บูลีน (คู่ x) {
กลับ (x == 5);
}
isFive บูลีน (ถ่านค) {
กลับ (c == '5 ');
}
isFive บูลีน (String s) {
กลับ (s.equals ("5") | | |
s.equals ("5.0") | | |
s.equals ("ห้า") | | |
s.equals ("ห้า") | | |
s.equals ("ห้า"));
}
/ / ...
? มากไปวิธีการ
เป็นกระบวนการของการ
ใช้เดียวกัน
ชื่อวิธีการ
หลายวิธี
ที่ 32
วิธี Overlloadiing
/ / ...
isFive บูลีน (int x) {
กลับ (x == 5);
}
isFive บูลีน (คู่ x) {
กลับ (x == 5);
}
บูลีน isFive (ถ่านค) {
กลับ (c == '5 ');
}
isFive บูลีน (String s) {
กลับ (s.equals ("5") | | |
s.equals ("5.0") | |
s.equals ("ห้า") | | |
s.equals ("ห้า") | | |
s.equals ("ห้า"));
}
/ / ...
? เพื่อตรวจสอบว่า
วิธีการที่จะถูก
เรียกใช้
ลายเซ็นซึ่ง
รวมถึง
ชื่อวิธีการของ
จำนวนชนิด
และคำสั่งของ
พารามิเตอร์
? ประเภทการกลับมาของ
วิธีการที่ไม่ได้เป็น
ส่วนหนึ่งของลายเซ็น
33
Overlloadiing วิธี
isFive ("แปด");
isFive (37)
/ / ...
isFive บูลีน (int x) {
กลับ (x == 5);
}
isFive บูลีน ( คู่ x) {
กลับ (x == 5);
}
บูลีน isFive (ถ่านค) {
กลับ (c == '5 ');
}
isFive บูลีน (String s) {
กลับ (s.equals ("5") | | |
s.equals ("5.0") | | |
s.equals ("ห้า") | | |
s.equals ("ห้า") | | |
s.equals ("ห้า"));
}
/ / ...
34
วิธี Overlloadiing
ผลรวม (5, 8);
a1 = new int [] {5,
8, 37};
ผลรวม (a1);
/ / ...
int ผลรวม (int x1, int x2) {
กลับ (x1 + x2);
}
int ผลรวม (int x1, int x2, int x3) {
กลับ (x1 + x2 + x3);
}
int ผลรวม (int [] arr) {
int i, ผลรวม = 0, Maxi = arr.length;
for (i = 0; ฉัน <Maxi; i + +)
รวม + = arr [i];
กลับ (ผลรวม);
}
/ / ...
35
วิธี Overlloaded
? วิธี println มากเกินไป:
println (String s)
println (int i)
println (งคู่)
println (Object x)
และอื่น ๆ ...
? บรรทัดต่อไปนี้เรียกใช้รุ่นที่แตกต่างกันของ
วิธี println:
System.out.println ("ทั้งหมดจะ:");
System.out.println (รวม);
System.out.println (โง่);
36
Overlloadiing ก่อสร้าง
? ก่อสร้างสามารถมากเกินไป
? ก่อสร้างงานมากเกินไปให้หลายวิธีในการ
เริ่มต้นวัตถุใหม่
สุนัขเรียนสาธารณะ {
/ / ...
สุนัข () {
นับ + +;
}
สุนัข (int Newage) {
นับ + +;
อายุ = Newage;
}
37
มากไปก่อสร้าง
สุนัข (String newHairColor) {
นับ + +;
สีผม = newHairColor;
}
สุนัข (int Newage, String newHairColor) {
นับ + +;
อายุ = Newage;
สีผม = newHairColor;
}
/ / ...
}
? เพื่อสร้างสุนัขใหม่
สุนัขโง่ = ใหม่
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
wriitiing cllasses
ต้นฉบับผู้เขียน : John Lewis และวิลเลียม Loftus
แก้ไขโดย patrawadee tanawongsuwan
2

outlliine  ชั้นเรียนและวัตถุแล้ว
 อินสแตนซ์และสถิต  ขอบเขตของตัวแปรตัวแปร

 UML แผนภาพ

 วิธีประกาศ  จุด  tostring ผู้ประกอบการ
( )


 นี้  constructors โหลด  วิธี

 วิธีการสลายตัว  วิธีการผ่านตัวแปร  encapsulation
3

วัตถุและ cllasses
 ชั้นเรียนกำหนดแนวคิด และวัตถุที่เป็นรูปธรรมของชั้น

 คลาสที่สามารถใช้ในการสร้างวัตถุหลายวัตถุ cllasses
4

และบัญชีธนาคาร

เรียน

( แนวคิด ) จอห์น บัญชีธนาคารยอดเงิน :
$

5257 วัตถุ ( การรับรู้ )

บิลบัญชีธนาคารยอดเงิน : $ 1245069

แมรี่ บัญชีธนาคารยอดเงิน : $ 16833

หลายวัตถุจากคลาสเดียวกัน

5cllasses
 คลาสที่เป็นรูปแบบหรือแบบแผนจากวัตถุที่ถูกสร้างขึ้น

 ตัวอย่างเช่นสตริงคลาสจะถูกใช้เพื่อกำหนด

 วัตถุสตริงสตริง class ให้เราโดย Java ห้องสมุดมาตรฐานระดับ 

แต่เรายังสามารถเขียนของเราเอง ชั้นเรียนที่กำหนด
วัตถุที่เฉพาะเจาะจงที่เรา ต้องการ
6
 คลาสที่ประกอบด้วยข้อมูล ( หรือตัวแปร ) และวิธีประกาศประกาศ

int x , y ;

ถ่าน CH ;ข้อมูลประกาศ

วิธีประกาศ cllasses

7 สุนัข cllass
 เราเขียนของเราเอง หมาชั้น
 ในสุนัข เราสามารถระบุข้อมูลดังต่อไปนี้ :
-
-
- นับอายุ haircolor
 เราอาจกำหนดวิธีการดังต่อไปนี้ :
- หมาเห่า - วิธีการคอนสตรัค

- วิธี - วิธีการเป็นสั่น

add2 8

 ตัวแปรอินสแตนซ์ variiablles อายุในชั้นเรียนสุนัขเรียกว่า
ตัวแปรอินสแตนซ์ ( หรือข้อมูลตัวอย่าง ) เพราะแต่ละ
อินสแตนซ์ ( วัตถุ ) ของห้องสุนัขที่มีอายุของตัวเอง
5
8

กาก้าอายุ GOGO
INT อายุ ;
9

เรียนหมา statiic variiablles
 ตัวแปรสามารถเป็นแบบคงที่
 คงที่ตัวแปร ( หรือคงที่ข้อมูล ) จะเรียกว่า
ตัวแปร

กาก้าอายุ 5 8


อายุ GOGO int อายุชั้น ;
นับชั้นสุนัข
int คง ; 12

statiic 10 variiablles
 โดยปกติวัตถุแต่ละวัตถุจะต้องมีการเก็บข้อมูลในพื้นที่ของตัวเอง แต่
ถ้าตัวแปรที่ถูกประกาศเป็น static , เพียงหนึ่งสำเนาของตัวแปรอยู่

 พื้นที่หน่วยความจำสำหรับตัวแปรแบบคงที่สร้างขึ้นเมื่อ
คลาสซึ่งจะประกาศโหลด
 วัตถุทั้งหมดที่สร้างขึ้นจากชั้นเรียนแลกเปลี่ยนคงที่

 ตัวแปรเปลี่ยนค่าของตัวแปรแบบคงที่ในวัตถุหนึ่ง
เปลี่ยนแปลงมัน สำหรับคนอื่น ๆทั้งหมด

11 ตัวแปรคงที่ : examplle จน desiign
 เมื่อตัวแปรควรจะคงที่แต่มันไม่ได้ . .

เรียน Int อายุ ; สุนัข
int นับ ; นับ 1



กาก้าอายุ 5 GoGo นับ 2
8

อายุ 12 statiic variiablles : examplle จน desiign
 เมื่อตัวแปรไม่ควรคงที่ แต่มันเป็น
อายุ ! คง ;
นับชั้นสุนัข
int คง ;

โบกาก้า
1
5
2
8
1
ขอบเขตของ variiablles
/ / วิธีเห่า
int x ;
/ /
/ / วิธีวิธีการแกว่ง add2
int x ;
1

เรียน สุนัขอายุ- นับเป็นแบบคงที่ตัวแปร
-
- อายุตัวอย่างตัวแปรนับอายุจะมองเห็นทุกวิธี

- x คือตัวแปรท้องถิ่น
- X จะปรากฏเฉพาะในแต่ละแบบแต่ละเปลือก และ add2 --

มีสำเนาของตัวเองของ x (

และค่าของพวกเขาอาจแตกต่างกัน )
- x ไม่สามารถมองเห็นสั่น


14 นับ int คง ; ขอบเขตของ variiablles
 ขอบเขตของตัวแปร คือ พื้นที่ในโปรแกรม
ตัวแปรที่สามารถใช้ ( อ้างอิง )
 ตัวแปรที่ประกาศในระดับคลาส ( เช่น
และนับอายุ ) สามารถใช้วิธีการทั้งหมดที่ห้อง

 ตัวแปรที่ประกาศภายในวิธี ( เช่น X )
ถูกใช้เพียงในวิธีที่ 15


 UML UML diiagrams ย่อมาจาก สำหรับ UML แผนภาพยูเอ็มแอล
 แสดงความสัมพันธ์ระหว่างคลาสและวัตถุ

 เป็น UML แผนภาพคลาสที่ประกอบด้วยหนึ่งหรือมากกว่าหนึ่ง
ชั้นเรียน แต่ละส่วนสำหรับชื่อชั้น

 คุณลักษณะและวิธีการสายระหว่างเรียนเป็นตัวแทนของสมาคม
 สมาคมสามารถแสดงหลายหลาก
16
UML cllass diiagrams

prog1 หลัก ( มีอาร์กิวเมนต์ : String [ ] ) :

น้องหมา
นับ : เป็นโมฆะ อายุ : int int

haircolor : String
< < > > bark() คอนสตรัค dog()
:

add2 เป็นโมฆะเป็นโมฆะ wag() : ( x : Y : int , int ) :
1
1

17 2UML วัตถุ diiagrams
 เป็นวัตถุแผนภาพ UML ประกอบด้วยหนึ่งหรือมากกว่าหนึ่ง

 instantiated วัตถุ มันเป็นภาพรวมของวัตถุในการรันโปรแกรมแสดงข้อมูลค่า

, กาก้า : โบอายุสุนัข
=

= 1 : สุนัขอายุ 18

8
) ส่วนหัว  วิธีการประกาศ เริ่มต้นด้วย วิธีหัว

ชื่อ

วิธีการกลับรายการพารามิเตอร์ประเภท

รายชื่อพารามิเตอร์ที่ระบุประเภทและชื่อของแต่ละพารามิเตอร์

add2 int ( int num1 , int num2 )


 19 วิธีร่างกายวิธีการที่ส่วนหัวจะตามด้วยวิธีร่างกาย
add2 int ( int num1 , int num2 )
{

num1 int รวม ; ผลรวม = num2 ;
กลับผลรวม ;
}

กลับมาสีหน้าต้องสอดคล้องกับผลตอบแทน ประเภท
20

 งบคืนกลับชนิดของวิธีการบ่งชี้ชนิดของว่าวิธีการส่งค่า


กลับไปเรียกสถานที่ วิธีที่ไม่ส่งคืนค่ามีความว่างเปล่า

21
ผลตอบแทนผลตอบแทนประเภทงบ
 วิธีการเสร็จสิ้นเมื่อกลับถึงคำให้การ
; ใด ๆบรรทัดของรหัสหลังจากที่กลับมาไม่ได้

myabsolute ประหารสาธารณะ int ( int x ) {
ถ้า ( x > = 0 )
กลับ ( x ) ;
x = 0-x ;
system.out.println ( x ) ;
กลับ ( x ) ;
}

examplle 22 ของ cllass สุนัขสุนัข {

สาธารณะระดับสาธารณะคงที่ int นับ = 0 ;

สาธารณะ int อายุสาธารณะ String haircolor ;
เห่าโมฆะสาธารณะ ( ) {
ถ้า ( อายุ > = 1 )
system.out.println ( " น้อมคำนับ ! " ) ; สั่น
}
ประชาชนเป็นโมฆะ ( ) {

}
/ / . . . . . . . คงเป็นโมฆะสาธารณะ ( num1 add2 int , int num2 ) {
system.out.println ( num1 num2 ) ;
}
}

-
 23 จุด ตัวแปร และวิธีสามารถเข้าถึงได้โดยใช้จุด

สาธารณะระดับผู้ประกอบการ testdog {
ประชาชนเป็นโมฆะหลักสถิต ( string [ ] มีอาร์กิวเมนต์ ) {
สุนัข กาก้า = หมาใหม่ ( ) ;
gaga.count ;
กาก้าอายุ = 5 ;
gaga.haircolor = " สีแดง " ;
gaga.bark ( ) ;
dog.add2 ( 5 8 ) ;
system.out.println ( " กาก้า : ( "
gaga.age gaga.count " , " " , " gaga.haircolor " ) " ) ; } }


น้อมคำนับ !

กาก้า : 13 ( 1.5 , สีแดง )
( )

tostriing 24 ชื่อคลาสสุนัข {
สาธารณะคงที่ int นับ = 0 ;
สาธารณะ int สาธารณะ String haircolor อายุ ;
;
เห่าโมฆะสาธารณะ ( ) {
ถ้า ( อายุ > = 1 )
system.out.println ( " น้อมคำนับ ! " ) ; สั่น
}
ประชาชนเป็นโมฆะ ( ) {

}
/ / . . . . . . .โมฆะสาธารณะคงที่ ( num1 add2 int , int num2 ) {
system.out.println ( num1 num2 ) ;
}
สาธารณะ String tostring ( ) {
กลับ " ( " นับ " , "

haircolor อายุ " , " " ) " ) ;
}
}
( )

tostriing 25 ชั้น testdog สาธารณะ {
ประชาชนเป็นโมฆะหลักสถิต ( string [ ] มีอาร์กิวเมนต์ ) {
สุนัข กาก้า = หมาใหม่ ( ) ;
gaga.count ;
gaga.age = 5 ;
gaga.haircolor = " สีแดง " ;
gaga.bark ( ) ;
dog.add2 ( 5 8 ) ;
system.out.println ( กาก้า ) ;
}
}
น้อมคำนับ !

( 1 , 5 , 13 , แดง )


 26 statiic วิธีวิธีที่สามารถเรียกใช้ผ่านวัตถุ :
สุนัข กาก้า = หมาใหม่ ( ) ; ( ) ;

gaga.bark  วิธีการแบบคงที่สามารถเรียกใช้ผ่านคลาส
:
dog.add2 ( ) ;
สาธารณะระดับ {
สุนัขเห่า โมฆะ สาธารณะ ( ) {

}
/ / . . . . . . . add2 ( int num1 โมฆะสาธารณะคงที่ , int num2 ) {

} } / / . . . . . . .



 27 ถึงอ้างอิงนี้อ้างอิงช่วยให้วัตถุที่จะดูเอง

 นั่นคือ นี้อ้างอิงที่ใช้ภายในวิธีการ
หมายถึงวัตถุซึ่งโดยวิธีคือ

ถูกประหารโมฆะสาธารณะ ( ) { (
1 อายุ = 1 ;
( ถ้า this.age > = อายุ )
system.out.println ( " น้อมคำนับ ! " ) ;
}


 28 ก่อสร้างเป็นผู้สร้างเป็นวิธีพิเศษที่ใช้

เริ่มต้นขึ้นใหม่วัตถุ มันเรียก

 กับใหม่ เมื่อเขียนเกี่ยวกับ โปรดจำไว้ว่า :
- มันเป็นชื่อเดียวกับคลาส
- มันไม่คืนค่า
- มันไม่มีกลับพิมพ์ไม่ได้เป็นโมฆะ
- มันมักจะตั้งค่าค่าเริ่มต้นของตัวแปรอินสแตนซ์
 โปรแกรมเมอร์ไม่ต้องกำหนด

 ผู้สร้างสำหรับชั้น แต่ละชั้นมีการเริ่มต้นก่อสร้างที่รับ



ไม่มีพารามิเตอร์  ก่อสร้าง 29 ถ้าเราไม่ได้เขียนคอนสตรัคปริยายคอนสตรัค

จะอยู่ ห้องสาธารณะ {
*
/ สุนัข* หากมีบรรทัดต่อไปนี้ของรหัส
*
* หมา ( ) { }
/
}
 สร้างใหม่สุนัข : สุนัขสุนัข
กาก้า = ใหม่ ( ) ;
3

 ก่อสร้างหนึ่งอาจสร้างของเขา / ผู้สร้างของเธอเองที่
กรณีเริ่มต้น จะ ไป ไปเรียน {
.
สาธารณะสุนัขสุนัข ( int นวยุค , สตริง newhaircolor ) {

อายุนับ ; = = newhaircolor haircolor นวยุค ;
;
}
}
 สร้างใหม่สุนัข :
สุนัข กาก้า = หมาใหม่ ( 5 " สีแดง " ) ; / / โอเค
สุนัขสุนัข GoGo = ใหม่ ( ) ; / / ผิดพลาด

31 overlloadiing วิธีการ
/ / . . . . . . .
isfive บูลีน ( int x ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( Double X ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( อักขระ c ) {
กลับ ( C = = ' 5 ' ) ;
}
บูลีน isfive ( สาย ) {
กลับ ( s.equals ( 5 " ) | |
s.equals ( " / " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " ห้า " ) ; } )

/ / . . . . . . .
 วิธีโหลด

คือ กระบวนการของใช้วิธีเดียวกัน

ชื่อหลายวิธี

overlloadiing 32 วิธี
/ / . . . . . . .
isfive บูลีน ( int x ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( Double X ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( อักขระ C ) {
กลับ ( C = = ' 5 ' ) ;
}
บูลีน isfive ( สาย ) {
กลับ ( s.equals ( 5 " ) | |
s.equals ( " / " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " 5 " ) ; } )

/ / . . . . . . .

 เพื่อตรวจสอบซึ่งวิธีถูก

เรียกใช้ลายเซ็นซึ่งรวมถึงชื่อ

วิธี

จำนวน ประเภท และคำสั่งของพารามิเตอร์

 ผลตอบแทนประเภท

วิธีไม่ใช่ส่วนหนึ่งของลายเซ็น


isfive ( 33 overlloadiing วิธีการ " แปด "
isfive ( 37 ) ) ;
/ / . . . . . . .
isfive บูลีน ( int x ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( Double X ) {
กลับ ( X = = 5 ) ;
}
บูลีน isfive ( อักขระ c ) {
กลับ ( C = = '
5 ' ) ; }
บริการ isfive ( สาย ) {
กลับ ( s.equals ( 5 " ) | |
s.equals ( " / " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " ห้า " ) | |
s.equals ( " ห้า " ) ; } )

/ / . . . . . . .

overlloadiing 34 วิธีผลรวม (
5 8 ) ;
A1 = [ Sample ] ใหม่ { 5
8 , 37 } ;
SUM ( A1 ) ;
/ / . . . . . . .
int ( int int รวม x1 , x2 ) กลับ ( x1 x2 {

} ) ;
int ( int int X2 x1 , ผลรวม , int X3 ) กลับ ( x1 x2 x3 {

} ) ; int ( int sum
[ ]
อ๋า ) { int ผม sum = 0 =
Maxi arr.length ;เพื่อ ( i = 0 ; i < Maxi ; I )
ผลรวม = อา [ i ] ;
กลับ ( รวม ) ;
}
/ / . . . . . . .
3

 overlloaded วิธีการที่ println วิธีมีเพียบ :
println ( สาย )
println ( int i )

println คู่ ( D ) println ( วัตถุ X )
. . . .
 บรรทัดต่อไปนี้เรียกแตกต่างกันรุ่น

system.out.println println วิธี : ( " ทั้งหมด " ) ;
system.out.println ( รวม ) ;
system.out.println ( กาก้า ) ;
0
overlloadiing ผู้รับเหมาผู้รับเหมาสามารถเพียบ

  เพียบก่อสร้างให้หลายวิธีที่จะเริ่มต้นใหม่

ชื่อคลาสวัตถุสุนัข {
/ / . . . . . . .
สุนัข ( ) {

}
สุนัขนับ ; ( int นวยุค ) {

อายุนับ ; = นวยุค ;
}
37

โหลดคอนสตรัคเตอร์สุนัข ( ข้อความ newhaircolor ) {

haircolor newhaircolor นับ ; = ;
}
สุนัข ( int นวยุค , สตริง newhaircolor ) {

นับอายุ = นวยุค ;
;haircolor = newhaircolor ;
}
/ / . . . . . . .
}
 สร้างใหม่สุนัข :
สุนัข กาก้า = ใหม่
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: