Continue & Break
Continue & Break حیاتی ترین قسمت یک قضیه ی منطقی میباشند. کلیدواژه ی break فرآیند در دست گرفتن را چنانچه که شرطی بد فعالیت نماید متوقف می نماید و Continue عکس این عمل را اعمال می دهد. کلیه ی این عملیات با قابلیت و امکان رویت در لحظه هم پا اند. از آن جایی که بسط دهنده قادر است تعداد بیشتر ی مقاله تحت عنوان با امکان رویت ارائه دهد، کاتلین از سایر ی لهجه های اپلیکیشن نویسی تیزهوش خیس فعالیت می نماید. کد های پایین نماد میدهند چه گونه مقاله تحت طراحی اپلیکیشن در مشهد را در کاتلین انجام کنیم.
fun main(args: Array) { println("Example of Break and Continue") myLabel@ for(x in ۱..۱۰) { // appling the custom label if(x = = 5) { println("I am inside if block with value"+x+"\\n-- hence it will close the operation") break@myLabel //specifing the label } else { println("I am inside else block with value"+x) continue@myLabel } }}
کد های بالا خروجی پایین را در مرورگر آرم خواهند اعطا کرد.
Example of Break and ContinueI am inside else block with value1I am inside else block with value2I am inside else block with value3I am inside else block with value4I am inside if block with value5– hence it will close the operation
همان گونه که میبینید، در اختیار گرفتن کننده رینگ را ادامه میدهد، تا و مگر آن که مقدار x 5 باشد. به محض این که مقدار x به 5 رسد، بولک های if را ایفا می نماید و زمانی به عبارت break رسید، مجموع فرآیند در اختیار گرفتن اجرای نرم افزار را متوقف می نماید.
بیشتر بخوانید :
فراگیری صفر تا صد گویش اپلیکیشن نویسی کاتلین+pdf ( نصیب دوم)
Class & Object
درین قسمت ، اصول اول ی اپ نویسی غرض گرا با به کارگیری از کاتلین را خاطر می گیریم. درخصوص طبقه و مقصودش و این که چطور با آن هدف شغل کنیم میاموزیم. طبق تعریفوتمجید OOP ، طبقه طرح نخستین ی قسمت ران تایم میباشد و غرض شرایط آن میباشد، که مشتمل بر خلق و خوی و هم موقعیت آن میشود. در کاتلین، اعلام طبقه از سرپیام طبقه و یک بدنه ی طبقه تسکیل گردیده که میباشد که بوسیله جفتی مجعد اشراف گردیده است. مشابه به جاوا.
Class myClass { // class Header // class Body}
مثل جاوا، کاتلین اذن ی ایجاد کرد هدف های مختلفی از یک طبقه را میدهد، و شما مختارید تا اعضای طبقه و کارکرد هایشان را اضافه نمایید. قادر خواهیم بود قابلیت و امکان رویت متغیر های اعضای طبقه را با به کار گیری از کلیدواژه های مختلفی که در قسمت ۱۰ (در اختیار گرفتن قابلیت و امکان رویت) حافظه خواهیم گرفت در اختیار گرفتن کنیم.در نمونه ذیل، طبقه ای هم پا با هدف هایش میسازیم که بوسیله ی آنها به اعضای داده ی آن طبقه دسترسی پیدا میکنیم.
class myClass { // property (data member) private var name: String = "Tutorials.point" // member function fun printMe() { print("You are at the best Learning website Named-"+name) }}fun main(args: Array) { val obj = myClass() // create obj object of myClass class obj.printMe()}
کد های بالا خروجی تحت را در مرورگر به اکران میگذارند، که در حالا فرا تلاوت printMe() از myClass با به کارگیری از غرض هایش هستیم.
You are at the best Learning website Named- Tutorials.point
طبقه لانه ای
طبق تمجید، زمانی که طبقه ای باطن طبقه ی دیگری تشکیل شده باشد به آن طبقه ی لانه ای میگویند. در فراگیری کاتلین، طبقه ی لانه ای به طور خودکارثابت میباشد، در فیض، سوای ساختن مقصودی برای آن طبقه قابل دسترسی میباشد. در نمونه پایین، میبینیم که چطور کاتلین طبقه ی لانه ای مارا تعبیر و تفسیر می نماید.
fun main(args: Array) { val demo = Outer.Nested().foo() // calling nested class method print(demo)}class Outer { class Nested { fun foo() = "Welcome to The TutorialsPoint.com" }}
کد های بالا خروجی پایین را در مرورگر اکران میدهند.
Welcome to The TutorialsPoint.com
طبقه درونی
زمانی یک طبقه ی لانه ای تحت عنوان inner نشان گذاری شدهاست به آن طبقه ی درونی میگویند. یک طبقه ی درونی قادر است از روش اعضای داده ی طبقه ی فرنگی قابل دسترس باشد. در نمونه پایین، به اعضای داده ی طبقه ی فرنگی دسترسی پیدا میکنیم.
fun main(args: Array) { val demo = Outer().Nested().foo() // calling nested class method print(demo)}class Outer { private val welcomeMessage: String = "Welcome to the TutorialsPoint.com" inner class Nested { fun foo() = welcomeMessage }}
کد های بالا خروجی تحت را در مرورگر به اکران خواهند گذاشت، که در آن طبقه ی لانه ای را با به کارگیری از تولیدکننده ی پیش فرض کاتلین در طی جاری ساختن فرا میخوانیم.
Welcome to the TutorialsPoint.com
طبقه داخلی سوای اسم
طبقه ی داخلی فارغ از اسم معنی بسیار خیر و خوبی میباشد که معاش یک اپلیکیشن نویس را به شدت سهل وآسان می نماید. هر گاه در هم اکنون اجرای یک واسط باشیم، معنا بلوک داخلی فارغ از اسم به دربین میآید. معنی تشکیل داد مقصودی واسط با به کار گیری از مرجع هدف رانتایم تحت عنوان طبقه ی فارغ از اسم شناخته میگردد. در نمونه تحت، یک واسط میسازیم و مقصودی برای آن واسط با به کارگیری از مکانیزم طبقه ی درونی فارغ از اسم میسازیم.
fun main(args: Array) { var programmer :Human = object:Human // creating an instance of the interface { override fun think() { // overriding the think method print("I am an example of Anonymous Inner Class ") } } programmer.think()}interface Human { fun think()}
کد های بالا خروجی تحت را در مرورگر نماد میدهند.
I am an example of Anonymous Inner Class
اسم مثال
اسم های مثال بخشی از نرم افزار ی معنی کننده کاتلین میباشند. انعطافی برای ساخت و ساز نامی تازه از مثال ای جانور ساخت و ساز می نمایند، مثال ای تازه ساخت نمیکنند. درصورتی که اسم مثال خیلی بلند باشد، به راحتی میتوانید نامی کوتاه خیس معرفی کرده و از آن برای به کار گیری های بعدی به کار گیری نمایید. اسم های مثال برای مثال های بغرنج بسیار اثرگذار اند. در واپسین ورژن، کاتلین تامین از اسم های مثال را کنسل نموده است ولی چنانچه از نسخ کهن به کار گیری میکنید میتوانید به صورت پایین از آن به کار گیری نمائید.
typealias NodeSet = Settypealias FileTable = MutableMap>
آفریننده ها
دراین نصیب ، در زمینهی آفریننده ها در کاتلین اطلاعاتی استخراج میکنیم. کاتلین دو نوع آفریننده دارااست. یک کدام از تولیدکننده ی نخستین و دیگری تولید کننده ی ثانویه. یک طبقه ی کاتلین میتواند یک خالق ی نخستین و یک یا این که تعدادی خالق ی ثانویه داشته باشد. آفریننده ی جاوا به متغیر های جوارح مقدار میدهد البته در کاتلین آفریننده ی نخستین به طبقه مقدار میدهد، در حالی که تولید کننده ی ثانویه سعی بر منظق دادن در طول به عبارتی مقدار دادن است. آفریننده ی نخستین میتواند در سطح سرپیام طبقه مانند نمونه تحت نماد داده خواهد شد.
class Person(val firstName: String, var age: Int) {
// class body
}
در نمونه بالا، به تولیدکننده ی نخستین درون پرانتز فرمان داده ایم. دربین دو قسمت، اسم نخستین صرفا قابل تلاوت میباشد همان طور که با “val” اعلام گردیدهاست، در حالی که قسمت مسئله قابل بازنویسی میباشد. در نمونه ذیل از آفریننده ی اولین به کارگیری میکنیم.
fun main(args: Array) {
val person1 = Person("TutorialsPoint.com", ۱۵)
println("First Name = ${person1.firstName}")
println("Age = ${person1.age}")
}
class Person(val firstName: String, var age: Int) {
}
کد های بالا به صورت خود کار به دو متغیر مقدار دهی می نمایند و خروجی تحت را در مرورگر به اکران میگذارند.
. First Name = TutorialsPoint.com
Age = 15
همان طور که پیش از این به آن اشاره گردیده بود، کاتلین اذن میدهد تا یک یا این که تعداد بیشتری تولید کننده ی ثاونیه برا طبقه ی خویش بسازیم. این تولیدکننده ی ثانویه با استعمال از کلیدواژه ی “constructor” تاسیس شده است.مورد نیاز میباشد هر وقت میخواهید بیش تر از یک تولیدکننده در کاتلین داشته باشید یا این که هر وقت که میخواهد منطق بیشتری به خالق ی نخستین ی خویش اضافه کنیدو به خیال و خاطر این که تولید کننده ی اول ممکن میباشد بوسیله طبقه ی دیگری فراخوانده گردیده باشد، نمی توانید این فعالیت را فرمایید. به نمونه پایین اعتنا فرمایید، که در آن یک خالق ی ثانویه ساخته ایم و از نمونه بالا برای به عبارتی ایفا استعمال کرده ایم.
fun main(args: Array) {
val HUman = HUman(“TutorialsPoint.com”, 25)
print(“${HUman.message}”+”${HUman.firstName}”+
“Welcome to the example of Secondary constructor, Your Age is-${HUman.age}”)
}
class HUman(val firstName: String, var age: Int) {
val message:String = “Hey!!!”
constructor(name : String , age :Int ,message :String):this(name,age) {
}
}
دقت: هر تنی چند از خالق های ثانویه قابل تشکیل داد میباشد، ولی، تمامی ی آن تولید کننده ها بایستی به تولید کننده ی نخستین جواب گو باشند چه به طور بدون واسطه چه غیر بدون واسطه.
کد های بالا خروجی پایین را در مرورگر آرم میدهند.
Hey!!! TutorialsPoint.comWelcome to the example of Secondary constructor, Your Age is- 25
توارث
دراین قسمت، در امر توارث میآموزیم. طبق تعریف و تمجید، میدانیم که توارث یعنی دادن قسمت هایی از طبقه ی مامان به طبقه ی فرزند. در کاتلین، طبقه ی پایه “Any” اسم گذاری شدهاست، که طبقه ی فوق طبقه ی پیش فرض “Any” در فراگیری کاتلین میباشد. مانند سایر ی اپلیکیشن نویسی های مقصودگرا، کاتلین هم این کاربرد را با به کار گیری از کلیدواژه ی “:” نماد میدهد.
کلیه چیز در کاتلین به صورت پیش فرض پایانی میباشد، در فیض، احتیاج میباشد از کلیدواژه ی open در جلوی اعلام طبقه به کار گیری کنیم تا به آن امکان وراثت دهد. به نمونه پایین دقت فرمایید.
import java.util.Arrays
open class ABC {
fun think ()
{
print("Hey!! i am thiking ")
}
}
class BCD: ABC(){ // inheritence happend using default constructor
}
fun main(args: Array) {
var a = BCD()
a.think()
}
کد های بالا خروجی ذیل را در مرورگر به اکران خواهند گذاشت.
Hey!! i am thiking
حال دراین بخش یادگرفتن کاتلین، چه میشد در شرایطی که می خواستیم طریق think() را در طبقه ی فرزند غیر فعال کنیم. می بایست به نمونه تحت اعتنا کنیم که در آن دو طبقه ساخته ایم و یکیاز کارکرد های طبقه ی فرزند را غیرفعال کرده ایم.
import java.util.Arrays
Continue & Break
Continue & Break حیاتی ترین قسمت یک قضیه ی منطقی میباشند. کلیدواژه ی break فرآیند در دست گرفتن را چنانچه که شرطی بد فعالیت نماید متوقف می نماید و Continue عکس این عمل را اعمال می دهد. کلیه ی این عملیات با قابلیت و امکان رویت در لحظه هم پا اند. از آن جایی که بسط دهنده قادر است تعداد بیشتر ی مقاله تحت عنوان با امکان رویت ارائه دهد، کاتلین از سایر ی لهجه های اپلیکیشن نویسی تیزهوش خیس فعالیت می نماید. کد های پایین نماد میدهند چه گونه مقاله تحت طراحی اپلیکیشن در مشهد را در کاتلین انجام کنیم.
fun main(args: Array) { println("Example of Break and Continue") myLabel@ for(x in ۱..۱۰) { // appling the custom label if(x = = 5) { println("I am inside if block with value"+x+"\\n-- hence it will close the operation") break@myLabel //specifing the label } else { println("I am inside else block with value"+x) continue@myLabel } }}
کد های بالا خروجی پایین را در مرورگر آرم خواهند اعطا کرد.
Example of Break and ContinueI am inside else block with value1I am inside else block with value2I am inside else block with value3I am inside else block with value4I am inside if block with value5– hence it will close the operation
همان گونه که میبینید، در اختیار گرفتن کننده رینگ را ادامه میدهد، تا و مگر آن که مقدار x 5 باشد. به محض این که مقدار x به 5 رسد، بولک های if را ایفا می نماید و زمانی به عبارت break رسید، مجموع فرآیند در اختیار گرفتن اجرای نرم افزار را متوقف می نماید.
بیشتر بخوانید :
فراگیری صفر تا صد گویش اپلیکیشن نویسی کاتلین+pdf ( نصیب دوم)
Class & Object
درین قسمت ، اصول اول ی اپ نویسی غرض گرا با به کارگیری از کاتلین را خاطر می گیریم. درخصوص طبقه و مقصودش و این که چطور با آن هدف شغل کنیم میاموزیم. طبق تعریفوتمجید OOP ، طبقه طرح نخستین ی قسمت ران تایم میباشد و غرض شرایط آن میباشد، که مشتمل بر خلق و خوی و هم موقعیت آن میشود. در کاتلین، اعلام طبقه از سرپیام طبقه و یک بدنه ی طبقه تسکیل گردیده که میباشد که بوسیله جفتی مجعد اشراف گردیده است. مشابه به جاوا.
Class myClass { // class Header // class Body}
مثل جاوا، کاتلین اذن ی ایجاد کرد هدف های مختلفی از یک طبقه را میدهد، و شما مختارید تا اعضای طبقه و کارکرد هایشان را اضافه نمایید. قادر خواهیم بود قابلیت و امکان رویت متغیر های اعضای طبقه را با به کار گیری از کلیدواژه های مختلفی که در قسمت ۱۰ (در اختیار گرفتن قابلیت و امکان رویت) حافظه خواهیم گرفت در اختیار گرفتن کنیم.در نمونه ذیل، طبقه ای هم پا با هدف هایش میسازیم که بوسیله ی آنها به اعضای داده ی آن طبقه دسترسی پیدا میکنیم.
class myClass { // property (data member) private var name: String = "Tutorials.point" // member function fun printMe() { print("You are at the best Learning website Named-"+name) }}fun main(args: Array) { val obj = myClass() // create obj object of myClass class obj.printMe()}
کد های بالا خروجی تحت را در مرورگر به اکران میگذارند، که در حالا فرا تلاوت printMe() از myClass با به کارگیری از غرض هایش هستیم.
You are at the best Learning website Named- Tutorials.point
طبقه لانه ای
طبق تمجید، زمانی که طبقه ای باطن طبقه ی دیگری تشکیل شده باشد به آن طبقه ی لانه ای میگویند. در فراگیری کاتلین، طبقه ی لانه ای به طور خودکارثابت میباشد، در فیض، سوای ساختن مقصودی برای آن طبقه قابل دسترسی میباشد. در نمونه پایین، میبینیم که چطور کاتلین طبقه ی لانه ای مارا تعبیر و تفسیر می نماید.
fun main(args: Array) { val demo = Outer.Nested().foo() // calling nested class method print(demo)}class Outer { class Nested { fun foo() = "Welcome to The TutorialsPoint.com" }}
کد های بالا خروجی پایین را در مرورگر اکران میدهند.
Welcome to The TutorialsPoint.com
طبقه درونی
زمانی یک طبقه ی لانه ای تحت عنوان inner نشان گذاری شدهاست به آن طبقه ی درونی میگویند. یک طبقه ی درونی قادر است از روش اعضای داده ی طبقه ی فرنگی قابل دسترس باشد. در نمونه پایین، به اعضای داده ی طبقه ی فرنگی دسترسی پیدا میکنیم.
fun main(args: Array) { val demo = Outer().Nested().foo() // calling nested class method print(demo)}class Outer { private val welcomeMessage: String = "Welcome to the TutorialsPoint.com" inner class Nested { fun foo() = welcomeMessage }}
کد های بالا خروجی تحت را در مرورگر به اکران خواهند گذاشت، که در آن طبقه ی لانه ای را با به کارگیری از تولیدکننده ی پیش فرض کاتلین در طی جاری ساختن فرا میخوانیم.
Welcome to the TutorialsPoint.com
طبقه داخلی سوای اسم
طبقه ی داخلی فارغ از اسم معنی بسیار خیر و خوبی میباشد که معاش یک اپلیکیشن نویس را به شدت سهل وآسان می نماید. هر گاه در هم اکنون اجرای یک واسط باشیم، معنا بلوک داخلی فارغ از اسم به دربین میآید. معنی تشکیل داد مقصودی واسط با به کار گیری از مرجع هدف رانتایم تحت عنوان طبقه ی فارغ از اسم شناخته میگردد. در نمونه تحت، یک واسط میسازیم و مقصودی برای آن واسط با به کارگیری از مکانیزم طبقه ی درونی فارغ از اسم میسازیم.
fun main(args: Array) { var programmer :Human = object:Human // creating an instance of the interface { override fun think() { // overriding the think method print("I am an example of Anonymous Inner Class ") } } programmer.think()}interface Human { fun think()}
کد های بالا خروجی تحت را در مرورگر نماد میدهند.
I am an example of Anonymous Inner Class
اسم مثال
اسم های مثال بخشی از نرم افزار ی معنی کننده کاتلین میباشند. انعطافی برای ساخت و ساز نامی تازه از مثال ای جانور ساخت و ساز می نمایند، مثال ای تازه ساخت نمیکنند. درصورتی که اسم مثال خیلی بلند باشد، به راحتی میتوانید نامی کوتاه خیس معرفی کرده و از آن برای به کار گیری های بعدی به کار گیری نمایید. اسم های مثال برای مثال های بغرنج بسیار اثرگذار اند. در واپسین ورژن، کاتلین تامین از اسم های مثال را کنسل نموده است ولی چنانچه از نسخ کهن به کار گیری میکنید میتوانید به صورت پایین از آن به کار گیری نمائید.
typealias NodeSet = Settypealias FileTable = MutableMap>
آفریننده ها
دراین نصیب ، در زمینهی آفریننده ها در کاتلین اطلاعاتی استخراج میکنیم. کاتلین دو نوع آفریننده دارااست. یک کدام از تولیدکننده ی نخستین و دیگری تولید کننده ی ثانویه. یک طبقه ی کاتلین میتواند یک خالق ی نخستین و یک یا این که تعدادی خالق ی ثانویه داشته باشد. آفریننده ی جاوا به متغیر های جوارح مقدار میدهد البته در کاتلین آفریننده ی نخستین به طبقه مقدار میدهد، در حالی که تولید کننده ی ثانویه سعی بر منظق دادن در طول به عبارتی مقدار دادن است. آفریننده ی نخستین میتواند در سطح سرپیام طبقه مانند نمونه تحت نماد داده خواهد شد.
class Person(val firstName: String, var age: Int) {
// class body
}
در نمونه بالا، به تولیدکننده ی نخستین درون پرانتز فرمان داده ایم. دربین دو قسمت، اسم نخستین صرفا قابل تلاوت میباشد همان طور که با “val” اعلام گردیدهاست، در حالی که قسمت مسئله قابل بازنویسی میباشد. در نمونه ذیل از آفریننده ی اولین به کارگیری میکنیم.
fun main(args: Array) {
val person1 = Person("TutorialsPoint.com", ۱۵)
println("First Name = ${person1.firstName}")
println("Age = ${person1.age}")
}
class Person(val firstName: String, var age: Int) {
}
کد های بالا به صورت خود کار به دو متغیر مقدار دهی می نمایند و خروجی تحت را در مرورگر به اکران میگذارند.
. First Name = TutorialsPoint.com
Age = 15
همان طور که پیش از این به آن اشاره گردیده بود، کاتلین اذن میدهد تا یک یا این که تعداد بیشتری تولید کننده ی ثاونیه برا طبقه ی خویش بسازیم. این تولیدکننده ی ثانویه با استعمال از کلیدواژه ی “constructor” تاسیس شده است.مورد نیاز میباشد هر وقت میخواهید بیش تر از یک تولیدکننده در کاتلین داشته باشید یا این که هر وقت که میخواهد منطق بیشتری به خالق ی نخستین ی خویش اضافه کنیدو به خیال و خاطر این که تولید کننده ی اول ممکن میباشد بوسیله طبقه ی دیگری فراخوانده گردیده باشد، نمی توانید این فعالیت را فرمایید. به نمونه پایین اعتنا فرمایید، که در آن یک خالق ی ثانویه ساخته ایم و از نمونه بالا برای به عبارتی ایفا استعمال کرده ایم.
fun main(args: Array) {
val HUman = HUman(“TutorialsPoint.com”, 25)
print(“${HUman.message}”+”${HUman.firstName}”+
“Welcome to the example of Secondary constructor, Your Age is-${HUman.age}”)
}
class HUman(val firstName: String, var age: Int) {
val message:String = “Hey!!!”
constructor(name : String , age :Int ,message :String):this(name,age) {
}
}
دقت: هر تنی چند از خالق های ثانویه قابل تشکیل داد میباشد، ولی، تمامی ی آن تولید کننده ها بایستی به تولید کننده ی نخستین جواب گو باشند چه به طور بدون واسطه چه غیر بدون واسطه.
کد های بالا خروجی پایین را در مرورگر آرم میدهند.
Hey!!! TutorialsPoint.comWelcome to the example of Secondary constructor, Your Age is- 25
توارث
دراین قسمت، در امر توارث میآموزیم. طبق تعریف و تمجید، میدانیم که توارث یعنی دادن قسمت هایی از طبقه ی مامان به طبقه ی فرزند. در کاتلین، طبقه ی پایه “Any” اسم گذاری شدهاست، که طبقه ی فوق طبقه ی پیش فرض “Any” در فراگیری کاتلین میباشد. مانند سایر ی اپلیکیشن نویسی های مقصودگرا، کاتلین هم این کاربرد را با به کار گیری از کلیدواژه ی “:” نماد میدهد.
کلیه چیز در کاتلین به صورت پیش فرض پایانی میباشد، در فیض، احتیاج میباشد از کلیدواژه ی open در جلوی اعلام طبقه به کار گیری کنیم تا به آن امکان وراثت دهد. به نمونه پایین دقت فرمایید.
import java.util.Arrays
open class ABC {
fun think ()
{
print("Hey!! i am thiking ")
}
}
class BCD: ABC(){ // inheritence happend using default constructor
}
fun main(args: Array) {
var a = BCD()
a.think()
}
کد های بالا خروجی ذیل را در مرورگر به اکران خواهند گذاشت.
Hey!! i am thiking
حال دراین بخش یادگرفتن کاتلین، چه میشد در شرایطی که می خواستیم طریق think() را در طبقه ی فرزند غیر فعال کنیم. می بایست به نمونه تحت اعتنا کنیم که در آن دو طبقه ساخته ایم و یکیاز کارکرد های طبقه ی فرزند را غیرفعال کرده ایم.
import java.util.Arrays

راهکارهای کاهش CPC در کمپینها