ืืจืืื ืฉืื ืืช ืืืฆืืจ ืืืืืืงื ื-Java
ืืงืืจ:
ืืื ืื ื ืืืืจืื ืื, ื ืืื ืืจืืื ืฉืื ืืช ืืืฆืืจ ืืืืืืงื ื-Java. ืืืืืืงื Java ืืื ืืืคืข ืฉื ืืืืงืช Java. ืืื ืืืืืืงื ืืฉ ืืฆื, ืืชื ืืืืช ืืืืื. ืฉืืืช (ืืฉืชื ืื) ืืืืกื ืื ืืช ืืืฆื ืฉื ืืืืืืงื, ืืขืื ืฉืฉืืืืช (ืคืื ืงืฆืืืช) ืืฆืืืืช ืืช ืืคืขืืื ืฉื ืืืืืืงื. ืืืืงืืช ืืฉืืฉืืช ื"ืฉืจืืืืื" ืฉืืื ื ืืฆืจืื ืืืคืขื ืืืืืืงื ืืืื ืจืืฆื.
ืืฆืืจืช ืืืืืืงื ื-Java
ืืฆืืจืช ืืืืืืงื ืืื ืชืืืื ืฉื ืืงืฆืืช ืืืืจืื ืืืืกืื ื ืชืื ืื ืืฉืืืช ืืืืงื (ื ืงืจืืื ืื ืืฉืชื ืื). ืชืืืื ืื ื ืงืจื ืืขืชืื ืงืจืืืืช ืืฆืืจืช ืืืคืข ืฉื ืืืืงื. ืืฉื ื ืืจืืข ืืจืืื ืฉืื ืืช ืืืฆืืจ ืืืืืืงืืื ื-Java:
- ืืืืฆืขืืช ืืืืช ืืืคืชื ืืืืฉื
- ืฉืืื newInstance()
- ืฉืืืช clone().
- ืืืืื ืกืืจื ืฉื ืืคืฅ
ืขืืฉืื ืืืื ื ืกืชืื ืขื ืื ืืืช ืืืฉืืืืช ืฉืืืืืจื ืืคืืจืื.
ืืืืช ืืคืชื ืืืฉื
ืืืื ืืืจื ืื ืคืืฆื ืืืืชืจ ืืืฆืืจ ืืืืืืงื ื-Java. ืืืืช ืืืคืชื
ืืืืฉื ืืืฆืจืช ืืืคืข ืฉื ืืืืงื ืขื ืืื ืืงืฆืืช ืืืืจืื ืืืืคืข ืืืฉ ืืืกืื ืฉืฆืืื. ืืืืจ ืืืฉ ืืืืข ืืงืื ืกืืจืืงืืืจ - ืฉืืื ืืืืืืช ืืืืจืืืช ืขื ืืฆืืจืช ืืืืืืงื ืืืชืืื ืืฉืืืช ืฉื ืืืืืืืงื ืฉื ืืฆืจ. ืืืืืืงื ื ืืฆืจ ืขื ืืืืคืจืืืจ
ืืืืฉ ืืืืืื ืขื ืื ืื. ืื ื ืืืืื ืืืฆืืจืช ืืืืืืงื Java ืขื ืืืืคืจืืืจ
ืืืืฉ :
Date today = new Date();
ืืืืื ืื ืืืฆืจ ืืืืืืงื
Date ืืืฉ (
Date ืืื ืืืืงื ืืชืื ืืืืืื
java.util ). ืกืขืืฃ ืืืื ืื ืืงืื ืืืฆืข ืฉืืืฉ ืคืขืืืืช: ืืืจืื, ืืืคืข ืืืืชืืื.
Date today ืืื ืืฆืืจืช ืืฉืชื ื ืืืืืืขืช ืืช ืืืืืจ
ืฉืืืื ืืคื ื ืืืืืืืงื ืืกืื
Date . ืืืืคืจืืืจ ืืืืฉ ืืคืขืื ืืช ืืืืืงื
Date (ืืืฆืจ ืืืืืืงื
Date ืืืฉ ืืืืืจืื), ื-
Date() ืืืชืื ืืช ืืืืืืืงื. ืฉืงืื ืืช ืืืืืื ืฉืืืื:
public class Person {
private String name;
private int uid;
public Person() {
this.name = "Michael Cole";
this.uid = 101;
}
public Person(String name, int uid) {
super();
this.name = name;
this.uid = uid;
}
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person("John Bodgan", 102);
System.out.println("Name: " + p1.getName() + " UID: " + p1.getUid());
System.out.println("Name: " + p2.getName() + " UID: " + p2.getUid());
}
}
ืืงืื ืื ืื ื ืืืฆืจืื ืืืืืืงื
Person ืืืืฆืขืืช ืืืืช ืืืคืชื
ืืืืฉื :
- ืืืืืืืงื p1 ืงืืจื ืืื ืื ืืื ืคืจืืืจืื ืขื ืขืจื ืฉื ืืืฉืชื ื ืืืืืจ ื-"Michael Cole" ืื-UID ืืืืืจ ื-101.
- ืืืืืืืงื p2 ืงืืจื ืืื ืื ืืขื ืืคืจืืืจืื, ืฉื ืืื ืืขืืืจ ืืื ืื ืืช ืืขืจื "John Bodgan" ื-102. ืืืืจ ืืื ืืืงืฆืื ืืขืจืืื ืืื ืฉื ืืฉืชื ื ื-UID.
ืฉืืืืฉ ืืฉืืืช newInstance()
ืฉืืืช
newInstance() ื-Java ืืฉืืฉืช ืืืฆืืจืช ืืืคืข ืืื ืื ืฉื ืืืืืืงื ืฉื ืืืืงื ื ืชืื ื. ืืฉื ื ืฉื ื ืฉืืืืฉืื ืกืื ืืจืืืื ืืฉืืืช
newInstance() :
- ืฉืืืช newInstance() ื- Java.lang.Class API
- ืฉืืืช newInstance() ื- Java.lang.reflect.Constructor API
ืฉืืืืฉ ื-newInstance() ื-Class API
ืืื ืืืฆืืจ ืืืืืืงื ืฉื ืืืืงื ืืืื ืจืืฆื, ืขืืื ื ืืงืจืื ืืืชืืื
newInstance() ื-Class API, ืืฉืจ ืืืืืจื ืืืืืืงื ืฉื ืืืชื ืืืืงื. ืฉืืืช
newInstance() ืฉื ืืืืืงื
java.lang.Class ืืื ื ืืืงืืช ืคืจืืืจืื ืื ืืจืืืื ืืื ืื ืืชื ืืงืจืื ืื ืื ืื ืืื ืืจืืืื ื ืขืืืจ ืืืืืงื ืืื. ืืืื ื ืกืชืื ืขื ืงืื ืืืืืื ืืืฆืืจืช ืืืืืืงื ืฉื ืืืืืงื
Person ืืืืฆืขืืช ืฉืืืช
newInstance() ืฉื ืืืืืงื
java.lang.Class :
public class Person {
private String name;
private int uid;
public Person() {
this.name = "Carl Max";
this.uid = 101;
}
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Class c = Class.forName("com.medium.option2.Person");
@SuppressWarnings("deprecation")
Person p = (Person) c.newInstance();
System.out.println("Name: " + p.getName());
System.out.println("UID: " + p.getUid());
}
}
Class.forName (ืืฉื ืืืื ืฉื ืืืืืงื) ืืืขื ืืืืงื ืืฉื
Person , ืืื
newInstance() ืืืฆืจ ืืืืืืงื ืืืฉ ืืกืื
Person ืืืืืืจ ืืืื ืืคื ืื. ืืขืช, ืืืืฆืขืืช ืืืคื ืื
ื-Person ื-
p , ืื ื ืืืืืื ืืงืจืื ืื
getters() ื-
setter() ืืื ืืืฆืข ืคืขืืืืช ืืกืืืืืช. ืฉืืื ืื:
- ืื Class.forName() ืืื newIstance() ืืืจืงืื ืืจืืืื ืฉืืฉ ืืืคื ืืื ืืืืฆืขืืช try and catch blocks ืื ืืืืช ืืืคืชื throws .
- ืฉืืืช newInstance() ื-Class API ืืืฆืื ืืฉืืืืฉ ืืื Java 9.
ืฉืืืืฉ ื-newInstance() ื-Constructor API
ืฉืืืช
newInstance() ืฉื ืืืืืงื
Constructor (
java.lang.reflect.Constructor ) ืืืื ืืฉืืืช
newInstance() ืฉื ืืืืืงื
Class , ืืื ืฉืืื ืืงืืืช ืคืจืืืจืื ืขืืืจ ืื ืืื ืขื ืคืจืืืจืื. ืืืื ื ืืืื ืืืฉื ืื ืขื ืืื ืืฆืืจืช ืืืืืืงื ืฉื ืืืืืงื
Person ืืืืฆืขืืช ืฉืืืช
newInstance() ืฉื ืืืืืงื
java.lang.reflect.Constructor :
public class PersonTwo {
private String name;
private int uid;
public PersonTwo() {
this.name = "Maya Kumari";
this.uid = 101;
}
public PersonTwo(String name) {
this.name = name;
this.uid = 102;
}
public PersonTwo(String name, Integer uid) {
this.name = name;
this.uid = uid;
}
public static void main(String[] args) {
try {
Class.forName("com.medium.option2.PersonTwo");
Constructor c1 = PersonTwo.class.getConstructor();
PersonTwo p1 = (PersonTwo) c1.newInstance();
System.out.println("Name: " + p1.getName());
System.out.println("UID: " + p1.getUid());
Constructor c2 = PersonTwo.class.getConstructor(String.class);
PersonTwo p2 = (PersonTwo) c2.newInstance("James Gunn");
System.out.println("Name: " + p2.getName());
System.out.println("UID: " + p2.getUid());
Constructor c3 = PersonTwo.class.getConstructor(String.class, Integer.class);
PersonTwo p3 = (PersonTwo) c3.newInstance("Mark Brown", 103);
System.out.println("Name: " + p3.getName());
System.out.println("UID: " + p3.getUid());
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
ืืงืื ืฉืืืขืื, ืจืืฉืืช ืขืืื ื ืืืขืื ืืช ืืืืืงื ืืืืฆืขืืช ืืฉืืื
Class.forName() . ืืืืจ ืืื, ื ืงืจื ืืฉืืืช
getConstructor() ืืื ืืืชืืื ืืช ืกืืื ืื ืชืื ืื ืฉื ืืคืจืืืจืื ืฉืืืขืืจื. ืืืกืืฃ, ืืฉืืืช
newInstance() ื ืขืืืจ ืืช ืืคืจืืืจ ืื ืืจืฉ (
null ืื ืืื ืืจืืืื ื). ืืฉืืื
newInstance() ืชืืืืจ ืืืืืืงื ืืืฉ ืฉื ืืืืืงื
PersonTwo ืขื ืืื ืงืจืืื ืืื ืื ืืืชืืื.
ืฉืืืืฉ ืืฉืืืช clone()
ืฉืืืช
clone() ืืื ืืืง ืืืืืืงื
Object ืืืฉืืฉืช ืืืฆืืจืช ืขืืชืง ืฉื ืืืืืืงื ืงืืื. ืื ืืืฆืจ ืืืืืืงื ืฉื ืืืืืงื ืืืื ืืงืจืื ืืฉืื ืื ืื ืืืืงื. ืืื ืืฉืืคื ืฉืืื, ืืืืืงื ืืืชืืืื ืืืืืช ืืืืฉื ืืช ืืืืฉืง
Cloneable , ืฉืืื ืืืฉืง ืกืื. ืืขืช ื ืืฆืืจ ืืืืืืงื ืฉื ืืืืืงื
Person ืืืืืจ ืืื ื ืฉืืคื ืืืชื ืืืืืืืงื ืืืจ ืฉื ืืืืืงื
Person :
public class Person implements Cloneable {
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
private String name;
private int uid;
public Person(String name, int uid) {
super();
this.name = name;
this.uid = uid;
}
public static void main(String[] args) {
Person p1 = new Person("Ryan", 101);
try {
Person p2 = (Person) p1.clone();
System.out.println("Name: " + p2.getName());
System.out.println("UID: " + p2.getUid());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
ืืขืจื. ืืืืืืืงื ืืืฉืืื ืืคื ื ืืืืชื ืืืืืืงื ืืงืืจื ืืืืฆืขืืช ืืคื ืื
p2 . ืขื ืืืช, ืืืืืืืงื ืืืฉืืื ืชืืื ืืงืฆืืช ืืืืจืื ื ืคืจืืช. ืืฉืืขืืช ืืืืจ ืืื ืฉืื ืฉืื ืื ืฉื ืขืฉื ืืืืืืืงื
ื-Person ืฉืืืื ืืชืืืืก
p2 ืื ืืฉื ื ืืช ืืืืืืงื
ื-Personal ืืืงืืจื ืฉืืืื ืืคื ื
p1 . ืืกืืื ืืื ืืื ืฉืฉืืืช
clone() ืืืฆืจืช ืขืืชืง ืจืืื ืฉื ืืืืืืงืืื.
ืฉืืืืฉ ืืกืืืจืืืืืืฆืื ืฉื ืืืืืืงืืื
ืื-ืกืจืืืืืืฆืื ืฉื ืืืืืืงื ืืื ืชืืืื ืฉื ืืืืืฅ ืืืืืืงื ืืกืืจื ืฉื ืืจืื ืืชืื. ืกืจืืืืืืฆืื ืขืืฉื ืืช ืืืืคื. ืืืจืชื ืืขืืงืจืืช ืืื ืืืืืจ ืืืืืืงื ืืืืืกื ืืืกื ืื ืชืื ืื/ืจืฉืช ืืืืจื ืืืืืจืื. ืื ืื ืื ื ืจืืฆืื ืืขืฉืืช ืกืืจื ืื ืื-ืกืจืืืืืืฆืื ืฉื ืืืืืืงื, ืื ืื ื ืฆืจืืืื ืืืืฉื ืืช ืืืืฉืง
Serializable (ืืืฉืง ืืกืืืื). ืฉืงืื ืืช ืืืืืื ืฉืืืื:
public class PersonDriver {
public static void main(String[] args) {
Person p1 = new Person("Max Payne", 101);
FileOutputStream fileOutputStream;
try {
fileOutputStream = new FileOutputStream("link to text file");
ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
outputStream.writeObject(p1);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream("link to text file");
ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
Person p2 = (Person) inputStream.readObject();
System.out.println("Name: " + p2.getName());
System.out.println("UID: " + p2.getUid());
inputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
ืืื ืื ื ืืกืืจืื ืืจืืฉืื ื ืืช ืืืืืืืงื
Person ืขื ืืื ืืคื ืื
p1 ืืงืืืฅ ืืงืกื. ืืฉืืื
writeObject() ืชืืชืื ืืช ืืจื ืืืืืื ืฉื ืืืืืืืงื ืืงืืืฅ ืืงืกื. ืืืืจ ืืื, ืืืืฆืขืืช ืื-ืกืจืืืืืืฆืื ืฉื ืืืืืืงื, ืื ื ืืืืฆืื ืืช ืืืืืืงื ื-
Person ืืืืจื ืืชืื
p2 . ืืืืคื ืืืื, ืืฉืืื
readObject() ืชืงืจื ืืืืืืงื ืืืจื ืืงืื ืฉื ืืืืืืืงื. ืืืกืืฃ, ื ืืคืืก ืืช ืื ืชืื ืื ืืืืืืืงื ื-
Person ืื ืืืกืืฃ.
ืกืืืื
ืืืืืจ ืื ืืืื ื ืขื ืืืจืืื ืืฉืื ืืช ืืืฆืืจ ืืืืืืงื ื-Java. ืจืืฉืืช, ืืืงื ื ืืฆืืจืช ืืืืืืงืืื ืืืืฆืขืืช ืืืืช ืืืคืชื
ืืืืฉื , ืฉืืื ืืืจื ืื ืคืืฆื ืืืืชืจ. ืืืืจ ืืื ืืืื ื
ืืช ืฉืืืช newInstance() ืืืืืืงืืช
Class ื-
Constructor , ืฉืืื ืืจื ืคืืคืืืจืืช ื ืืกืคืช ืืืฆืืจ ืืืืืืงืืื. ืืืืจ ืืื ืืฉืชืืฉื ื ืืฉืืืช
clone() , ืฉืืืฆืจืช ืขืืชืง ืจืืื ืฉื ืืืืืืืงื ืืงืืื ืืืงืื ืืืฆืืจ ืืืืืืงื ืืืฉ. ืืืกืืฃ, ืืฉืชืืฉื ื ืืืืฉื ืฉื ืกืจืืืืืืฆืื ืฉื ืืืืืืงืืื ื-deserialization ืืื ืืืฆืืจ ืืืืืืงืืื ื-Java.
ืืืจืืืช ื-Int ื-Java - ืืืฆื ืืืืืจ ืืืจืืืช ืืืกืคืจ ืฉืื
ืืงืืจ:
FreeCodeCamp ืืืื ืชืืืื ืืืฆื ืืืืืจ ืืืจืืืช ืืืกืคืจ ืฉืื ื-Java ืืืืฆืขืืช ืฉืชื ืฉืืืืช ืฉื ืืืืืงื Integer - parseInt() ื- valueOf() . ืื ืืขืืืจ ืื ืืขืช ืืืฆืืข ืคืขืืืืช ืืชืืืืืช ืืืืฆืขืืช ืืขืจื ืฉื ืืฉืชื ื ืืืจืืืช.
ืืืฆื ืืืืืจ ืืืจืืืช ืืืกืคืจ ืฉืื ื-Java ืืืืฆืขืืช Integer.parseInt
ืืคืฉืจืืช ืื ืื ืืื ืฉืืืชืืื
parseInt() ืืืงืืช ืืืจืืืช ืืื ืืืืืจ ืืืกืคืจ ืฉืื ืืคืจืืืจ:
Integer.parseInt(string_varaible)
ืืคื ื ืฉื ืกืชืื ืขื ืืืืื ืืฉืืืืฉ ืื, ืืืื ื ืจืื ืื ืงืืจื ืืืฉืจ ืืืกืืคืื ืขืจื ืืืจืืืช ืืืกืคืจ ืฉืื ืืื ืื ืืืจื:
class StrToInt {
public static void main(String[] args) {
String age = "10";
System.out.println(age + 20);
}
}
ืืงืื ืื, ืืฆืจื ื
ืืื ืืฉืชื ื ืขื ืขืจื ืืืืจืืืช "10". ืืืฉืจ ืืืกืคื ื ืืช ืืืกืคืจ 20 ืืขืจื ืืกืคืจ ืฉืื, ืงืืืื ื ืืืขืืช 1020 ืืืงืื ืืชืฉืืื ืื ืืื ื ืฉื 30. ื ืืชื ืืชืงื ืืืช ืืืืฆืขืืช ืฉืืืช
parseInt() :
class StrToInt {
public static void main(String[] args) {
String age = "10";
int age_to_int = Integer.parseInt(age);
System.out.println(age_to_int + 20);
}
}
ืืื, ืืื ืืืืืจ ืืช ืืฉืชื ื ืืืื ืืืกืคืจ ืฉืื, ืืขืืจื ื ืืืชื ืืคืจืืืจ ืืฉืืืช
parseInt() -
Integer.parseInt(age) - ืืืืกื ื ืืืชื ืืืฉืชื ื ืืฉื
age_to_int . ืืขืช ืืืฉืจ ืืืกืืคืื ืืืกืคืจ ืฉืื ืืืจ ื ืงืื ืืช ืืชืืกืคืช ืื ืืื ื:
age_to_int + 20 .
ืืืฆื ืืืืืจ ืืืจืืืช ืืืกืคืจ ืฉืื ื-Java ืืืืฆืขืืช Integer.valueOf
ืืฉืืื
valueOf() ืคืืขืืช ืืื ืืฉืืื
parseInt() . ืื ืืืงื ืืคืจืืืจ ืืืจืืืช ืฉืฆืจืื ืืืืืจ ืืืกืคืจ ืฉืื. ืื ื ืืืืื:
class StrToInt {
public static void main(String[] args) {
String age = "10";
int age_to_int = Integer.valueOf(age);
System.out.println(age_to_int + 20);
}
}
ืืงืื ืืขืื ืืชื ืืืื ืืจืืืช ืืช ืืืชื ืืืืจ ืืื ืืกืขืืฃ ืืงืืื:
- ืืขืืจื ื ืืืจืืืช ืืคืจืืืจ ื- valueOf() : Integer.valueOf(age) . ืืื ืืืืกื ืืืฉืชื ื ืืฉื age_to_int .
- ืืืืจ ืืื ืืืกืคื ื 10 ืืืฉืชื ื ืฉื ืืฆืจ: age_to_int + 20 . ืืชืืฆืื ืืืืชื 30 ืืืงืื 1020.
ืกืืืื
ืืืืืจ ืื, ืื ื ืืืืจืช ืืืจืืืืช ืืืกืคืจืื ืฉืืืื ื-Java. ืืื ืืืืืจ ืืืจืืืช ืืืกืคืจ ืฉืื, ื ืขืฉื ืฉืืืืฉ ืืฉืชื ืฉืืืืช ืฉื ืืืืืงื
Integer -
parseInt() ื-
valueOf() . ืงืืืื ืฉืื!
GO TO FULL VERSION