Java/C3/Subclassing-and-Method-Overriding/Punjabi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 ਸਤਿ ਸ਼੍ਰੀ ਅਕਾਲ ਦੋਸਤੋ, “Sub classing” and “Method overriding” ‘ਤੇ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਤੁਹਾਡਾ ਸਾਰਿਆ ਦਾ ਸਵਾਗਤ ਹੈ ।
00:06 ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਸਿੱਖਾਂਗੇ: “sub classing”, “extends” ਕੀਵਰਡ ਅਤੇ “method overriding”
00:15 ਇੱਥੇ ਅਸੀਂ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹਾਂ:”ਊਬੰਟੁ ਲਿਨਕਸ ਵਰਜ਼ਨ 12.04”, “JDK” 1.7, “Eclipse” 4.3.1
00:25 ਇਸ ਟਿਊਟੋਰਿਅਲ ਨੂੰ ਜਾਣਨ ਦੇ ਲਈ, ਤੁਹਾਨੂੰ “Java” ਅਤੇ Eclipse IDE ਦੀ ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ।
00:32 ਜੇ ਨਹੀਂ ਹੈ ਤਾਂ, ਸੰਬੰਧਿਤ Java ਟਿਊਟੋਰਿਅਲਸ ਦੇ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ ਸਾਡੀ ਵੈੱਬਸਾਈਟ ‘ਤੇ ਜਾਓ ।
00:37 ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਅਸੀਂ ਸਿੱਖਾਂਗੇ ਕਿ sub classing ਕੀ ਹੈ ।
00:41 ਇਹ ਇੱਕ ਮੌਜੂਦਾ class ਤੋਂ ਨਵੀਂ class ਬਣਾਉਣ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ ।
00:46 ਨਵੀਂ ਕਲਾਸ “subclass” ਜਾਂ “derived class” ਜਾਂ “child class” ਬਣਦੀ ਹੈ ।
00:53 ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਕਲਾਸ ਨੂੰ “super class” ਜਾਂ “base class” ਜਾਂ “parent class” ਕਹਿੰਦੇ ਹਨ ।
01:00 ਹੁਣ, ਮੈਂ ਤੁਹਾਨੂੰ ਦਿਖਾਉਂਦਾ ਹਾਂ ਕਿ subclass ਕਿਵੇਂ ਬਣਾਉਣੀ ਹੈ । ਮੈਂ ਪਹਿਲਾਂ ਤੋਂ ਹੀ My Project ਨਾਂ ਵਾਲਾ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਬਣਾਇਆ ਹੈ ।
01:10 ਮੈਂ ਇਸ ਵਿੱਚ Employee ਨਾਂ ਵਾਲੀ ਇੱਕ ਕਲਾਸ ਬਣਾਈ ਹੈ ।
01:15 ਇਸ ਵਿੱਚ ਵੈਰੀਏਬਲਸ name ਅਤੇ “email_address” ਹੈ ।
01:19 ਇਸ ਵਿੱਚ ਕਲਾਸ ਦੇ ਲਈ “setter” ਅਤੇ “getter” ਮੈਥਡ ਵੀ ਹੈ ।
01:24 ਇਸ ਵਿੱਚ “get Details ()” ਮੈਥਡ ਹੈ । ਇਹ ਮੈਥਡ “name” ਅਤੇ “email_address” ਰਿਟਰਨ ਕਰਦਾ ਹੈ
01:31 ਹੁਣ, Manager ਕਲਾਸ ‘ਤੇ ਆਉਂਦੇ ਹਾਂ ।
01:35 ਇਸ ਵਿੱਚ ਵੈਰੀਏਬਲਸ, “name, email_address” ਅਤੇ “department” ਹੈ ।
01:40 ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਕੁੱਝ ਵੈਰੀਏਬਲਸ “Employee” ਅਤੇ “Manager class” ਦੋਨਾਂ ਵਿੱਚ ਸਮਾਨ ਹਨ ।
01:47 “name” ਅਤੇ “email_address” Employee ਕਲਾਸ ਵਿੱਚ ਹਨ । ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਇਹ Manager ਕਲਾਸ ਵਿੱਚ ਵੀ ਹੈ ।
01:57 ਇਸ ਤਰ੍ਹਾਂ ਨਾਲ, Manager ਕਲਾਸ ਨੂੰ Employee ਕਲਾਸ ਦੀ subclass ਬਣਾਈ ਜਾ ਸਕਦੀ ਹੈ ।
02:03 ਇਸ ਦੇ ਲਈ, ਸਾਨੂੰ Manager ਕਲਾਸ ਵਿੱਚ ਕੁੱਝ ਤਬਦੀਲੀ ਕਰਨੀ ਪਵੇਗੀ ।
02:08 public class Manager ਦੇ ਬਾਅਦ, ਟਾਈਪ ਕਰੋ: “extends Employee”
02:14 ਅਸੀਂ ਮੌਜੂਦਾ ਕਲਾਸ ਤੋਂ subclass ਬਣਾਉਣ ਲਈ extends ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ।
02:21 ਦੋਵੇ ਕਲਾਸਾਂ ਵਿੱਚ ਸਮਾਨ ਡੁਪਲੀਕੇਟ ਵੈਰੀਏਬਲਸ ਨੂੰ ਹਟਾਓ ।
02:26 ਇਸ ਲਈ: Manager ਕਲਾਸ ਤੋਂ “name” ਅਤੇ “email_address” ਹਟਾ ਦਿਓ ।
02:32 ਇਸਦੇ ਇਲਾਵਾ “setter” ਅਤੇ “getter” ਮੈਥਡ ਵੀ ਹਟਾ ਦਿਓ ।
02:37 Manager ਕਲਾਸ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ ਕੇਵਲ ਇੱਕ department ਵੈਰੀਏਬਲ ਹੋਵੇਗਾ ।
02:43 ਸਾਡੇ ਕੋਲ department ਦੇ ਲਈ “setter” ਅਤੇ “getter” ਮੈਥਡ ਵੀ ਹੈ ।
02:59 ਇਸ ਤਰ੍ਹਾਂ, Manager ਕਲਾਸ Employee ਕਲਾਸ ਦੇ ਮੈਂਬਰਸ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ ।
02:55 ਇੱਕ ਕਲਾਸ ਨੂੰ ਹੋਰ ਕਲਾਸਾਂ ਵਿੱਚ ਵਿਸਥਾਰ ਕਰਨ ਦਾ ਇਹ ਤਰੀਕਾ single inheritance ਕਹਾਉਂਦਾ ਹੈ ।
03:02 ਮੈਂ ਇੱਕ ਹੋਰ Test Employee ਨਾਂ ਵਾਲੀ ਕਲਾਸ ਵੀ ਬਣਾਈ ਹੈ ।
03:08 Main ਮੈਥਡ ਵਿੱਚ, ਅਸੀਂ Manager ਕਲਾਸ ਦਾ object ਬਣਾਵਾਂਗੇ ।
03:14 ਇਸ ਲਈ: main ਮੈਥਡ ਵਿੱਚ, ਟਾਈਪ ਕਰੋ “Manager manager” equal to “new Manager” parentheses
03:23 ਫਿਰ, ਅਸੀਂ Manager ਕਲਾਸ ਦੇ setter ਮੈਥਡ ਨੂੰ ਕਾਲ ਕਰਾਂਗੇ ।
03:28 ਤਾਂ, ਟਾਈਪ ਕਰੋ manager dot set Name ਬਰੈਕੇਟ ਵਿੱਚ, ਅਤੇ ਡਬਲ ਕੋਟਸ ਵਿੱਚ Nikkita Dinesh
03:38 ਫਿਰ ਟਾਈਪ ਕਰੋ: “manager” dot “set Email” ਬਰੈਕੇਟਸ ਅਤੇ ਡਬਲ ਕੋਟਸ ਵਿੱਚ abc at gmail dot com
03:49 ਫਿਰ ਟਾਈਪ ਕਰੋ: manager dot set Department ਬਰੈਕੇਟਸ ਵਿੱਚ ਅਤੇ ਡਬਲ ਕੋਟਸ ਵਿੱਚ Accounts
03:57 ਤੁਸੀਂ ਕੋਈ ਵੀ “name, email address” ਅਤੇ “department” ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ।
04:02 ਹੁਣ, Manager ਆਬਜੈਕਟਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ “get Details ()” ਮੈਥਡ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ ।
04:08 ਇਸ ਲਈ: ਟਾਈਪ ਕਰੋ: System.out.println ਬਰੈਕੇਟਸ ਵਿੱਚ manager dot get Details
04:17 ਹੁਣ, ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਸੇਵ ਅਤੇ ਰਨ ਕਰੋ ।
04:21 ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਸਾਨੂੰ ਆਉਟਪੁਟ ਪ੍ਰਾਪਤ ਹੋਈ ਹੈ:

“Name: Nikkita Dinesh” “Email:abc@gmail.com”

04:30 ਇੱਥੇ, Manager ਕਲਾਸ ਦਾ ਆਬਜੈਕਟ get Details () ਮੈਥਡ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ।
04:36 ਹੁਣ, Manager ਕਲਾਸ ‘ਤੇ ਆਓ ।
04:39 ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਇੱਥੇ get Details () ਮੈਥਡ ਨਹੀਂ ਹੈ ।
04:43 ਪਰ, ਫਿਰ ਵੀ ਸਾਨੂੰ ਆਉਟਪੁਟ ਪ੍ਰਾਪਤ ਹੋਈ ਹੈ । ਇਹ ਇਸ ਲਈ ਕਿਉਂਕਿ, “Manager” ਕਲਾਸ Employee ਕਲਾਸ ਦਾ ਵਿਸਥਾਰ ਕਰਦਾ ਹੈ ।
04:52 Manager ਕਲਾਸ ਸਵੈਕਰ ਰੂਪ ਤੋਂ Employee ਕਲਾਸ ਦੇ ਵੈਰੀਏਬਲਸ ਅਤੇ ਮੈਥਡਸ ਨੂੰ ਬਣਾਉਂਦਾ ਹੈ ।
04:59 ਇਸ ਲਈ: ਇਹ parent ਕਲਾਸ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ ਜੋ ਕਿ Employee ਹੈ ।
05:04 Employee ਕਲਾਸ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ । ਇਹ ਇੱਥੇ get Details () ਮੈਥਡ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ।
05:11 ਨੋਟ ਕਰੋ, ਅਸੀਂ department ਰਿਟਰਨ ਨਹੀਂ ਕੀਤੀ ਹੈ । ਫਲਸਰੂਪ, ਇਹ ਆਉਟਪੁਟ ਵਿੱਚ department ਪ੍ਰਿੰਟ ਨਹੀਂ ਕਰਦਾ ਹੈ ।
05:20 ਹੁਣ, get Details ਮੈਥਡ ਨੂੰ private ਵਿੱਚ ਬਦਲਦੇ ਹਾਂ । ਫਾਇਲ ਨੂੰ ਸੇਵ ਕਰੋ ।
05:27 ਅਸੀਂ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ ਸਾਨੂੰ Test Employee ਕਲਾਸ ਵਿੱਚ ਇੱਕ ਕੰਪਲੈਕਸ ਐਰਰ ਮਿਲਦੀ ਹੈ ।
05:34 ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ: “The method getDetails () from the type Employee is not visible”
05:40 ਇਸ ਦਾ ਮਤਲੱਬ ਹੈ ਕਿ getDetails () ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ।
05:45 ਇਹ ਇਸ ਲਈ ਕਿਉਂਕਿ ਅਸੀਂ getDetails () ਮੈਥਡ ਨੂੰ private ਕੀਤਾ ਸੀ ।
05:52 sub class ਇਸਦੇ super class ਦੇ private ਮੈਂਬਰਸ ਨੂੰ ਨਹੀਂ ਸੰਭਾਲਦਾ ਹੈ ।
05:58 Subclass super class ਦੇ private ਮੈਂਬਰਸ ਨੂੰ ਸਿੱਧਾ ਐਕਸੈਸ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ ।
06:04 superclass public ਜਾਂ protected ਮੈਥਡ ਹੋ ਸਕਦਾ ਹੈ ।
06:09 ਇਹ ਮੈਥਡਸ ਉਸਦੇ private ਫੀਲਡਸ ਨੂੰ ਐਕਸੈਸ ਕਰ ਸਕਦੇ ਹਨ ।
06:13 subclass ਇਹਨਾਂ ਮੈਥਡਸ ਦੇ ਰਾਹੀਂ private ਫੀਲਡਸ ਨੂੰ ਵੀ ਐਕਸੈਸ ਕਰ ਸਕਦਾ ਹੈ ।
06:18 ਇਸ ਲਈ: ਇਸਨੂੰ public ਵਿੱਚ ਵਾਪਸ ਬਦਲਦੇ ਹਾਂ ।
06:21 ਹੁਣ, Manager ਕਲਾਸ ਵਿੱਚ getDetails ਮੈਥਡ ਸ਼ਾਮਿਲ ਕਰਦੇ ਹਾਂ ।
06:27 ਇਹ ਮੈਥਡ “name, email_address” ਅਤੇ “department” ਰਿਟਰਨ ਕਰੇਗਾ ।
06:33 ਇਸ ਲਈ: ਟਾਈਪ ਕਰੋ “public String getDetails” ਬਰੈਕੇਟਸ
06:39 ਮੈਥਡ ਵਿੱਚ ਟਾਈਪ ਕਰੋ: “return” ਬਰੈਕੇਟਸ ਵਿੱਚ “Name” plus “getName ()” plus “slash n” plus “Email” plus “getEmail ()” plus “slash n” plus “Manager of” plus “getDepartment ()” ਸੈਮੀਕਾਲਨ । ਫਾਇਲ ਨੂੰ ਸੇਵ ਕਰੋ ।
07:07 ਨੋਟ ਕਰੋ ਕਿ ਹੁਣ, ਸਾਡੇ ਕੋਲ getDetails ਮੈਥਡ Manager ਅਤੇ Employee ਦੋਵੇਂ ਕਲਾਸਾਂ ਵਿੱਚ ਹਨ ।
07:15 ਮੈਥਡ ਦਾ “name, return type” ਅਤੇ “argument list” ਦੋਵੇਂ ਕਲਾਸਾਂ ਵਿੱਚ ਸਮਾਨ ਹਨ ।
07:22 subclass ਵਿੱਚ ਮੈਥਡ parent ਕਲਾਸ ਵਿੱਚ ਮੈਥਡ ਨੂੰ override ਕਰਨ ਨੂੰ ਕਹਿੰਦਾ ਹੈ ਜੇ:

“name” “Return type” “argument list” ਬਿਲਕੁੱਲ ਸਮਾਨ ਹੋਵੇ ।

07:33 Manager ਕਲਾਸ ‘ਤੇ ਵਾਪਸ ਆਓ ।
07:36 getDetails () ਮੈਥਡ ਤੋਂ ਪਹਿਲਾਂ ਟਾਈਪ ਕਰੋ:@ Override
07:43 ਇਹ ਇੱਕ override annotation ਹੈ । ਇਹ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਕਿ ਮੈਥਡ superclass ਵਿੱਚ ਮੈਥਡ ਨੂੰ override ਕਰਨ ਦੇ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ।
07:53 ਹੁਣ, ਵੇਖਦੇ ਹਾਂ ਕਿ annotation ਕੀ ਹੈ ।
07:57 “Annotations:”

at (@) ਚਿੰਨ੍ਹ ਕੈਰੇਕਟਰ ਤੋਂ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਪ੍ਰੋਗਰਾਮ ਦੇ ਬਾਰੇ ਵਿੱਚ ਡਾਟਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਕੋਡ ਦੇ ਆਪਰੇਸ਼ਨ ‘ਤੇ ਕੋਈ ਸਿੱਧਾ ਪ੍ਰਭਾਵ ਨਹੀਂ ਪਾਉਂਦਾ ਹੈ

08:10 ਜੇ ਮੈਥਡ @Override ਦੇ ਨਾਲ annotate ਹੈ, ਕੰਪਾਇਲਰ ਐਰਰ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੇ: super class ਵਿੱਚ ਐਲਾਨ ਮੈਥਡ override ਨਹੀਂ ਕਰਦਾ ਹੈ ।
08:23 method signature ਇਸ ਦੇ super class ਨਾਲੋਂ ਵੱਖਰਾ ਹੈ ।
08:28 ਹੁਣ, IDE ‘ਤੇ ਵਾਪਸ ਆਓ । Manager ਕਲਾਸ ‘ਤੇ ਵਾਪਸ ਆਓ ।
08:34 “at (@)” ਚਿੰਨ੍ਹ ਕੈਰੇਕਟਰ ਕੰਪਾਇਲਰ ਨੂੰ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਕਿ annotation ਦੇ ਬਾਅਦ ਕੀ ਹੁੰਦਾ ਹੈ ।
08:42 ਇੱਥੇ, ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ getDetails () ਮੈਥਡ overridden ਹੈ ।
08:48 Test Employee ਕਲਾਸ ‘ਤੇ ਵਾਪਸ ਆਉਂਦੇ ਹਾਂ ।
08:51 ਫਾਇਲ ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਰਨ ਕਰੋ ।
08:55 ਸਾਨੂੰ ਹੇਠ ਲਿਖੀ ਆਉਟਪੁਟ ਮਿਲਦੀ ਹੈ:

“Name:Nikkita Dinesh”

“Email:abc @ gmail.com”

“Manager of Accounts”

09:05 ਇੱਥੇ, Manager ਕਲਾਸ ਦਾ ਆਬਜੈਕਟ getDetails () ਮੈਥਡ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ।
09:11 ਪਰ ਇਸ ਸਮੇਂ, ਇਹ ਆਪ Manager ਕਲਾਸ ਦੇ ਮੈਥਡ ਨੂੰ ਕਾਲ ਕਰ ਰਿਹਾ ਹੈ ।
09:16 ਇਸ ਤਰ੍ਹਾਂ, ਅਸੀਂ subclass ਦੁਆਰਾ parent ਕਲਾਸ ਦੇ ਮੈਥਡ ਨੂੰ override ਕਰ ਰਹੇ ਹਾਂ ।
09:23 ਸੰਖੇਪ ਵਿੱਚ । ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਅਸੀਂ ਸਿੱਖਿਆ:

“Sub classing”ਅਤੇ “Method Overriding”

09:31 ਨਿਰਧਾਰਤ ਕੰਮ ਦੇ ਰੂਪ ਵਿੱਚ, ਇੱਕ Vehicle ਕਲਾਸ ਬਣਾਓ, ਜਿਸ ਵਿੱਚ run ਮੈਥਡ ਹੋਵੇ, ਜੋ ਕਿ “The Vehicle is running” ਪ੍ਰਿੰਟ ਕਰੇ ।
09:40 ਇੱਕ Bike ਕਲਾਸ ਵੀ ਬਣਾਓ, ਜਿਸ ਵਿੱਚ run ਮੈਥਡ ਹੋਵੇ, ਜੋ ਕਿ “The Bike is running safely” ਪ੍ਰਿੰਟ ਕਰੇ ।
09:48 ਆਉਟਪੁਟ “The Bike is running safely” ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ।
09:52 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਦੇ ਬਾਰੇ ਵਿੱਚ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਲੈਣ ਦੇ ਲਈ, ਹੇਠ ਲਿਖੇ ਲਿੰਕ ‘ਤੇ ਉਪਲੱਬਧ ਵੀਡੀਓ ਨੂੰ ਵੇਖੋ ਇਹ ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਦਾ ਸਾਰ ਕਰਦਾ ਹੈ । ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਚੰਗੀ ਬੈਂਡਵਿਡਥ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਨੂੰ ਡਾਊਂਨਲੋਡ ਕਰਕੇ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ ।
10:06 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ ਟੀਮ - ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਰਕਸ਼ਾਪਾਂ ਚਲਾਉਂਦੀ ਹੈ । ਅਤੇ ਆਨਲਾਇਨ ਟੈਸਟ ਪਾਸ ਕਰਨ ਵਾਲਿਆ ਨੂੰ ਪ੍ਰਮਾਣ ਪੱਤਰ ਵੀ ਦਿੰਦੇ ਹਨ । ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਦੇ ਲਈ, ਕ੍ਰਿਪਾ ਕਰਕੇ contact@spoken-tutorial.org ‘ਤੇ ਲਿਖੋ ।
10:21 ਸਪੋਕਨ ਟਿਊਟੋਰਿਅਲ ਪ੍ਰੋਜੈਕਟ Talk to a Teacher ਪ੍ਰਾਜੈਕਟ ਦਾ ਇੱਕ ਹਿੱਸਾ ਹੈ । ਇਹ ਭਾਰਤ ਸਰਕਾਰ ਦੇ ਐਮਐਚਆਰਡੀ ਦੇ “ਆਈਸੀਟੀ ਵਲੋਂ ਰਾਸ਼ਟਰੀ ਸਾਖਰਤਾ ਮਿਸ਼ਨ” ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਤ ਹੈ । ਇਸ ਮਿਸ਼ਨ ‘ਤੇ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ http://spoken-tutorial.org/NMEICT-Intro ‘ਤੇ ਉਪਲੱਬਧ ਹੈ ।
10:42 ਇਹ ਸਕਰਿਪਟ ਨਵਦੀਪ ਦੁਆਰਾ ਅਨੁਵਾਦਿਤ ਹੈ । IIT Bombay ਤੋਂ ਮੈਂ ਨਵਦੀਪ ਤੁਹਾਡੇ ਤੋਂ ਇਜ਼ਾਜਤ ਲੈਂਦਾ ਹਾਂ, ਧੰਨਵਾਦ । }

Contributors and Content Editors

Harmeet