تو این پست میخوایم یسری چیزای پایه ای رو با هم بررسی کنیم و یکسری معادل سازی هارو مابین کاتلین و جاوا انجام بدیم.
- خط 1: معادل متد main در جاوا و برای اجرای برنامه های کاتلین
- خط 2: تعریف متغیر Immutable نظیر کلیدواژه final در جاوا. این یعنی بعد از تعریف و مقدار دهی، نمیتوانید مقدار را عوض کنید
- خط 4: به main_loop @ لیبل گفته میشه. در واقع به کمک لیبل ها میتونید یک استیتمنت (مثل ایف، حلقه، when و...) را مارک کنید و در ادامه به کمک این مارک، یکسری کار هارو انجام بدید. برای مثال در خط 10 من از لیبل برای بریک کردن حلقه ی وایل استفاده کردم
- خط 7: بجز اسکنر، از طریق متد readLine هم میشه ورودی گرفت. منتها (توی این مثال) میباستی این ورودی رو به عدد تبدیل کرد(Integer.ValueOf).
- خط: 8: دستور when دقیقا مشابه switch هستش. یعنی مقادیر مختلف option رو بررسی میکنه.
- خط 11: معادل default در دستور switch اینجا از else استفاده میشه
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥5👍1
💬 دارم داکیومنت کاتلین رو از صفر میخونم. هرچیز جالبی که بهش رسیدم رو اینجا باهاتون به اشتراک میزارم
اگرم شما هم در این زبان موضوع جالبی مدنظرتون قرار گرفت، توی کامنت ها به اشتراک بزارید که توی کانال با همه به اشتراک بزارم❤️ ^ ^
اگرم شما هم در این زبان موضوع جالبی مدنظرتون قرار گرفت، توی کامنت ها به اشتراک بزارید که توی کانال با همه به اشتراک بزارم❤️ ^ ^
❤20
│
└───
└───
│ log.txt
│
├───
│ text1.txt
│
└───
│ Main.kt
حالا با توجه به مسیر بالا:
در اینصورت آدرس دیگر بصورت نسبی نیست و از ریشه در نظر گرفته میشود:
————-
تیکه پاره های جاوا
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3
#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
تیکه پاره های جاوا
class Person {/**/}
class Empty
هنوزم یک کلاسه.
class Person constructor(firstName: String) { /*...*/ }البته اگر سازنده ی کلاس دارای Annotation یا سطح دسترسی خاصی نباشد، میتوانید کلیدواژه ی constructor را بردارید:
class Person(firstName: String) { /*...*/ }مثلا در دو حالت زیر ، نمیتوان کلیدواژه ی constructor را حذف کرد:
class Person private constructor(firstName:String)
class Customer public @Inject constructor(name: String) { /*...*/ }
class InitOrderDemo(name: String) {
val firstProperty = "First property: $name".also(::println)
init {
println("First initializer block that prints $name")
}
val secondProperty = "Second property: ${name.length}".also(::println)
init {
println("Second initializer block that prints ${name.length}")
}
}class Customer(name: String) {
val customerKey = name.uppercase()
}class Person(val firstName: String, val lastName: String, var age: Int)
میتوانید برای مقدار دهی اولیه پرامتر های ورودی کنستراکتور بصورت زیر عمل کنید:
class Person(val firstName: String, val lastName: String, var isEmployed: Boolean = true)
ا
class Person(
val firstName: String,
val lastName: String,
var age: Int, // trailing comma
) { /*...*/ }
class Person(val pets: MutableList<Pet> = mutableListOf())
class Pet {
constructor(owner: Person) {
owner.pets.add(this) // adds this pet to the list of its owner's pets
}
}
تیکه پاره های جاوا
———————-
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
تیکه پاره های جاوا
class Person(val name: String) {
val children: MutableList<Person> = mutableListOf()
constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}حتی اگر کلاس شما دارای کنستراکتور اصلی نباشد، باز هم برای کنستراکتور های ثانویه، اشاره به کنستراکتور اصلی به طور ضمنی اتفاق می افتد (یعنی نیازی نیست جلوی کنستراکتور دوم از this استفاده بشه):
class Constructors {
init {
println("Init block")
}
constructor(i: Int) {
println("Constructor $i")
}
}خروجی:
Init block
Constructor 1
درصورتی که بخواید کلاس دارای هیچگونه کنستراکتور پابلیکی نباشد، میتوانید سطح دسترسی آن را به پرایوت تغییر دهید:
class DontCreateMe private constructor() { /*...*/ }برای ساختن یک نمونه (شی / Object/ Instance) از یک کلاس، فقط کافیست کنستراکتور آن را صدا بزنید:
val invoice = Invoice()
val customer = Customer("Joe Smith")
ا
-----------------------------
—————
#kotlin
تیکه پاره های جاوا
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
یک چیز ضمنی یعنی چیزی که توسط ماشین مجازی یا یک ابزار در برنامه صورت میگیره و نیازی به تعریف مستقیم از طرف برنامه نویس نیست.
مثال
int x = 10;
long y = x;
در اینجا بطور ضمنی تبدیل صورت گرفته یعنی بدون آنکه نیاز باشد حرفی از تبدیل نوع بزنیم.
مثال 2
اما یک چیز صریح، یعنی برنامه نویس باید آشکارا در برنامه چیزی را تعریف کند. دقیقا برعکس مثال قبلی اگر قرار بر تبدیل یک داده از جنس long به int باشد، در برنامه حتما باید تبدیل نوع نیز بطور واضح و آشکار نوشته شود:
long y = 23131L;
x = (int) y;
هر دوی کلمات معمولا برای یک بازه ای از اعداد به کار گرفته میشود و اغلب اوقات برای آخرین عدد بازه توصیف میشود..
مثال
[1,10)
در این حالت بازه ی ما exclusive میباشد. یعنی شامل اخرین عدد نمیشود.
[1,10]
در این حالت بازه ی ما inclusive میباشد. یعنی شامل آخرین عدد میشود.
مثال 2
1. subString(int startIndex)
2. subString(int startIndex,int endIndex)
برای حالت دوم میگوییم endIndex بطور exclusive در نظر گرفته شده است. در نتیجه برای تکه کد زیر
String str = "HelloWorld";
System.out.println(str.substring(3,6));
خروجی رشته ای low خواهیم داشت (کاراکتر با اندیس 6 شامل این بازه نمیشود).
————
تیکه پاره های جاوا
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3❤1
Forwarded from تیکه پاره های جاوا اسکریپت
💡 انواع رجکس های مربوط به شماره تلفن های ایرانی تو حالت های مختلف رو جناب امیرمهدی جبرئیلی زحمتشو کشیدن تو گیت هابشون قرار دادند.
برای استفاده به ادرس زیر مراجعه کنید:
صحت سنجی شماره تلفن های ایرانی با رجکس
#regex
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27
درود و عرض ادب دوستان
بنابر هدف کانال، ازین به بعد فقط ”تیکه پاره“ هایی از جاوا رو مستقیم بصورت پست میکنم. اگر موردِ طولانی هم باشد، در قالب تلگراف یا ویدیو کوتاه براتون قرار میدم. مخصوصا ”تلگراف“ که به نسبت پست عادی هزار بار خوانا تر هست😇
ممنونم از بابت همراهیتون❤️
موفق و پیروز باشین
~ محمدرضا
بنابر هدف کانال، ازین به بعد فقط ”تیکه پاره“ هایی از جاوا رو مستقیم بصورت پست میکنم. اگر موردِ طولانی هم باشد، در قالب تلگراف یا ویدیو کوتاه براتون قرار میدم. مخصوصا ”تلگراف“ که به نسبت پست عادی هزار بار خوانا تر هست
ممنونم از بابت همراهیتون
موفق و پیروز باشین
~ محمدرضا
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍1
Telegraph
کلاس Timer و TimerTask در جاوا
سلام ودرود D: کلاس Timer در واقع به شما اجازه ی اجرای وظایف در یک زمان مشخص شده را میدهد. میتوان وظایف را طوری تنظیم کنید که یکبار اجرا بشود و یا اینکه در فاصله های منظم و بصورت دوره ای اجرا شود. البته ناگفته نماند که میتوانید تایمر را هر زمان که خواستید،…
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2❤1
دوستان دو تا سوال میزارم، بکمک stream حلش کنین و توی بخش کامنت ها جوابش رو بزارید
⬆️ بکمک استریم، لیستی از تمام حروف منحصر بفرد برای یک لیست رشته ای را بازگشت دهید. برای مثال:
input: [ "Hello" , "World" ]
output: [ "H", "e", "l", "o", "W", "r", "d" ]
⬆️ با داشتن دو لیست از اعداد، چطور میتوان تمامی جفت اعداد این دو لیست رو بکمک استریم بدست آورد؟
input: [1 ,2 ,3] , [3 ,4]
ouput: [(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
تیکه پاره های جاوا
Telegraph
متد flatmap درStream - جاوا
سوال 1: بکمک استریم، لیستی از تمام حروف منحصر بفرد برای یک لیست رشته ای را بازگشت دهید. برای مثال: • input: [ "Hello" , "World" ] • output: [ "H", "e", "l", "o", "W", "r", "d" ] پاسخ: شاید در ابتدای کار تصور کنید که کار ساده ایست و راه چاره این است که هر…
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2
#معرفی_سایت
احتمالا تا الان متوجه شدید که بعضی از مقالات سایت medium پریمیوم هستند و تا زمانی که اشتراک پریمیوم رو تهیه نکنید، به شما اجازه ی خوندن نمیده.
البته مشکلی نیست، فقط کافیه لینک مقاله رو در داخل سایت readmedium.com وارد کنید😉
احتمالا تا الان متوجه شدید که بعضی از مقالات سایت medium پریمیوم هستند و تا زمانی که اشتراک پریمیوم رو تهیه نکنید، به شما اجازه ی خوندن نمیده.
البته مشکلی نیست، فقط کافیه لینک مقاله رو در داخل سایت readmedium.com وارد کنید
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤1
gistfile1.txt
26.4 KB
#پیشنهاد
فایل JSON حاوی اطلاعات تمامی استان ها و شهر های ایران که بشدت توی پروژه ها بخصوص برای ثبت اطلاعات کاربر نیاز میشه
منبع: Saman Zamani Github
فایل JSON حاوی اطلاعات تمامی استان ها و شهر های ایران که بشدت توی پروژه ها بخصوص برای ثبت اطلاعات کاربر نیاز میشه
منبع: Saman Zamani Github
👍11🔥3
در جاوا اینترفیس یک داده ی مرجع هستش و در شی گرایی به نحوی نقش یک قرارداد رو بازی میکنه. یعنی وقتی کلاسی اینترفیسی رو پیاده سازی یا implement میکنه، موظفه که تمامی متد های تعریف شده در اینترفیس رو حتما پیاده کنه.
1. تمام متد ها بطور پیش فرض abstract هستند.
2. تمام فیلد ها بطور پیش فرض public static final هستند.
3. اینترفیس میتواند دارای توابع default و static باشد(این ویژگی از جاوا 8 به بعد اضافه شده).
بصورت سینتکسی و ساده، بصورت زیر تعریف میشه:
public interface Printable{
int VALUE = 10;
void print(String msg);
default void defaultMethod(...) {....}
static void staticMethod(...) {....}
}اما جالبه بدونید که سینتکس کاملش بصورت زیره:
public abstract interface Printable{
public static final int VALUE = 10;
public abstract void print(String msg);
public default void defaultMethod(...) {....}
public static void staticMethod(...) {....}
}———
#interface
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
متد abstract بدنه ای ندارد و حتما باید در کلاس فرزند Override شود.
🔗 در مورد Overriding از اینجا بخوانید
🔗در رابطه با کلیدواژه final از اینجا بخوانید
🔗 در مورد سطوح دسترسی از اینجا بخوانید
🔗 در رابطه با استاتیک از اینجا بخوانید
———
#abstract
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#پیشنهاد
برنامه Everything یک موتور جستجوی سریع (خیییلی سریع) برای ویندوز هستش.
پ.ن: اینقد سریع همه چی رو پیدا میکنه که آدم دیگه تنبل میشه و فایلاشو دسته بندی نمیکنه. پس لطفا حواستون باشه که مثل من نشید😃
⬇️ از اینجا دانلود کنید
برنامه Everything یک موتور جستجوی سریع (خیییلی سریع) برای ویندوز هستش.
پ.ن: اینقد سریع همه چی رو پیدا میکنه که آدم دیگه تنبل میشه و فایلاشو دسته بندی نمیکنه. پس لطفا حواستون باشه که مثل من نشید
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
#مثبت_برنامه_نویس
وقتی گوشیتون رو برای تعمیر میدید، بهتره اون رو روی Maintenance Mode بذارید. این حالت باعث میشه تمام عکسها، پیامها و اطلاعات شخصی شما مخفی بشن و تعمیرکار فقط به بخشهای سیستمی گوشی دسترسی داشته باشه. بعد از پایان تعمیر، با خاموش کردن Maintenance Mode همه چیز مثل قبل برمیگرده.
برای سامسونگ:
Settings → Device care → Maintenance Mode
برای شیائومی و IPhone هم اگه شما مسیر فعالسازیش رو میدونید بگید تا به پست اضافه کنم :)
پ.ن: ضمن اینکه این حالت رو فعال کنید، بهتره قبل از تعمیر یه بکاپ از داده هاتون بگیرید.
———
4️⃣ @PieceJava
وقتی گوشیتون رو برای تعمیر میدید، بهتره اون رو روی Maintenance Mode بذارید. این حالت باعث میشه تمام عکسها، پیامها و اطلاعات شخصی شما مخفی بشن و تعمیرکار فقط به بخشهای سیستمی گوشی دسترسی داشته باشه. بعد از پایان تعمیر، با خاموش کردن Maintenance Mode همه چیز مثل قبل برمیگرده.
برای سامسونگ:
Settings → Device care → Maintenance Mode
برای شیائومی و IPhone هم اگه شما مسیر فعالسازیش رو میدونید بگید تا به پست اضافه کنم :)
پ.ن: ضمن اینکه این حالت رو فعال کنید، بهتره قبل از تعمیر یه بکاپ از داده هاتون بگیرید.
———
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7