فضیلت
فضیلت
به خصایلی که موجب فضل و بزرگ منشی می شوند فضیلت می گویند. فضایل را می توان در پنج گروه تقسیم کرد: فضایل طبیعی (نظیر قدرت، سرعت)؛ فضایل اکتسابی (نظیر مهارت در نواختن ساز، بخشایش)؛ فضایل مربوط به خلق و خو (نظیر خوش خلقی، شوخ طبعی)؛ خصایل دینی (نظیر ایمان، پارسایی)؛ خصایل مربوط به منش (نظیر نیک خواهی، مهربانی). به مجموعه این صفات که باعث میشود تا فردی را بزرگ منش و نیک بنامیم فضایل می گوییم.
اخلاق مبتنی بر فضیلت عمدتاً با اشخاص سر و کار دارد. البته منظور از این سخن این نیست که این شاخه از فلسفه اخلاق محدود به داوری در مورد اشخاص است، بلکه افزون بر آن این گرایش، به راهنمایی کردار نیز می پردازد. خوب بودن حکم تعیین کننده فلسفه اخلاق معطوف به فضیلت است.
اخلاق مبتنی بر فضیلت با هر فضیلتی درگیر نیست بلکه تنها فضایلی خاص را مورد مطالعه و بررسی قرار می دهد. در حقیقت سر و کار این شاخه از فلسفه اخلاق با فضایل اخلاقی است. فضایل اخلاقی یعنی فضایلی که اخلاقی نامیدنشان موجه است. این توجیه یکی از وظایف فیلسوفان اخلاق مبتنی بر فضیلت است. مسئله دیگر این است که اخلاق مبتنی بر فضیلت به فضایل اکتسابی می پردازد نه فضایل طبیعی. فضایل طبیعی از حیث اخلاقی خنثی هستند.
اصولاً فلسفه اخلاق مبتنی بر فضیلت در میان فیلسوفان باستان رواج داشته است؛ با این حال نمی توان گفت که این گرایش در دوران رنسانس، روشنگری و قرن بیستم منسوخ گشته است. گرایش به فضیلت و فضیلت مندی همیشه در میان فلاسفه اخلاق مشهود بوده؛ با این وجود مهمترین فیلسوفان اخلاق مبتنی بر فضیلت عبارتند از:
افلاطون: از نظر افلاطون فضیلت هر شئ همان چیزی است که آن شئ را قادر می سازد تا وظیفه خاص خود را به خوبی انجام دهد. یعنی این که اگر تمام اجزاء یک نظام برای انجام دادن کار مورد انتظار از آن نظام در حالت متکامل قرار داشته باشند آن نظام، نظامی فضیلتمند است.
ارسطو: ارسطو معتقد است که انسان دارای فضایل عقلی است؛ فضایل عقلی مشتملند بر فضایل نظری و فضایل عملی. انسانها ممکن است از هیچ یک از این فضایل برخوردار نباشند، ممکن است یکی از این دو را داشته باشند و یا این که ممکن است از هر دوی آنها بهره مند باشند. از نظر ارسطو عقل زمانی به نحو احسن عمل میکند که هر دوی این فضایل را در خود داشته باشد. از منظر معلم اول کمالات و فضایل اخلاقی در ارتباط با بخش غیرعقلانی نفس هستند. این بخش نفس بخشی است مرتبط با برآوردن امیال و خواهش ها. اگر عقل بر این بخش نفس نظارت کند آن چه به دست می آید فضیلت است.
عدالت
همه ما با مفهوم عدالت تا اندازه ای مأنوسیم. این مفهوم در سرتاسر مناسبات و تعاملات روزمره ما جاری و ساری است. با وجود این ادراک شهودی از اخلاق، اکثر ما تعریف روشنی از عدالت در دست نداریم. به هر حال عدالت یکی از غامضترین و دشوارترین مفاهیم فلسفه اخلاق است و برای شناخت این مفهوم باید درکی کافی از چیستی فلسفه اخلاق داشت.
از دیدگاه ارسطو می توان عدالت را از دو منظر دید؛ یکی این که عدالت را به مثابه کل اخلاق بنگریم. یعنی هر آنچه درست است و نیک است عادلانه است و هر آنچه که عادلانه می خوانیم لاجرم درست است و نیک است. منظر دیگر این است که عدالت را به مثابه خود عدالت _ یعنی جزیی از اخلاقیات_ در نظر بگیریم. در این صورت عدالت تعریف خاص خود را دارد و ما می توانیم امری را عادلانه یا غیر عادلانه بخوانیم و از آن پس روشن کنیم که فلان عمل عادلانه آیا اخلاقی هم بود یا خیر؟
تئوریهای عدالت عمدتاً مبتنی بر درک متقابل اجتماعی شکل می گیرند و نیز ارتباط میان قانون و اخلاقیات حاکم بر جوامع بر اساس تئوریهای عدالت میسر می شود. نتیجتاً تمام این امور موجب موضع گیری اندیشمندان در رابطه با امر اخلاقی میشود و مانند هر موضوع فلسفی دیگر عقاید مختلف پیرامون این مسئله شکل می گیرد. عده ای قائل به عدالت طبیعی می شوند و عده ای در پی عدالت قانونی می روند. کسانی گرایش یه عدالت توزیعی پیدا می کنند و کسانی از پایه عدالت را غیراخلاقی عنوان می کنند.
با تمام این اوصاف از زمان افلاطون تا به امروز عدالت یکی از پیچیدهترین و جذابترین مباحث فلسفه اخلاق باقی مانده است.
سعادت
می توان اینگونه گفت که به نتیجه اخلاقی رضایت بخش برای انسان سعادت می گویند. پس سعادت امری مطلقاً اخلاقی است. سعادت یا رضایت وجدانی پدیدار نمی شود مگر به سبب عمل درست و نیک اخلاقی. به همین سبب هم سعادت در گفتمان دینی و مذهبی نیز مشهود است؛ زیرا این نوع گفتمانها نیز غایتی اخلاقی دارند.
از زمانی که فلسفه اخلاق وجود داشته، مبحث سعادتمندی نیز مطرح بوده است و عملاً ذهن غایت نگر انسان ناخواسته مجبور به ادراک تصور سعادت است. هیچ دستگاه فلسفی اخلاقی هرگز منکر وجود و حضور سعادت نمی شود؛ زیرا با از بین رفتن مفهوم سعادت، غایت فلسفه اخلاق از بین رفته و این فلسفه کارکرد خود را از دست می دهد. همه فلاسفه اخلاق مطالب بسیار درباره سعادت و سعادت مندی، چه به صورت مستقیم و چه به صورت ضمنی، نگاشته اند.
مسلم است که نگاه همه فلاسفه به امر سعادت یکسان نیست و هر فیلسوفی بر مبنای دستگاه فکری اش سعادت را تعبیری خاص کرده. جالب آن که مهمترین مؤلفه در به وجود آمدن مکاتب مختلف فلسفه اخلاق، تفاوت تعبیر چیستی سعادت از منظر فلاسفه مختلف است.
مکاتب
فراطبیعتگرایی
فراطبیعت گرایی تقریباً ابتداییترین نظام کامل اخلاقی است که بشر به آن دست یافته. این دیدگاه پایه اخلاقی ادیان بوده است و از دل نظام اخلاقی دینی به فلسفه اخلاق وارد شده است. بسیاری بر آنند که اصولاً فلسفه اخلاق این همان است با اندیشه دینی. هرچند که گزاره مذکور کاملاً مردود است اما گویای اهمیت این ریشه اخلاقیات نیز هست. فراطبیعت گرایی ناظر بر نظریه فرمان الهی است. به این معنا که آن چیزی درست و خوب است که خداوند به آن امر کند و آن چیزی نادرست و شر است که خداوند ما را از آن نهی کند. در نتیجه فراطبیعت گرایی گرایشی است از فلسفه اخلاق که تحت تأثیر فرامین الهی شکل گرفته است.
کسانی که قائل به گرایش فراطبیعی در اخلاق هستند در درجه اول ایمان به خدا را مسلم فرض می کنند. بر همین اساس تمام قوانین بنیادین از این منظر بر خواست خداوند مبتنی اند. به تبع قوانین بنیادین هستی بنیانهای اخلاقی نیز بر خواست خدا استوار می شوند و در نتیجه خداوند خالق نظام اخلاقی فرض گرفته میشود و خواست او موجب تمایز درست از نادرست می گردد.
همچنین فراطبیعت گرایان معتقد به عینیت اخلاقند. یعنی اخلاقیات وجود خارجی و عینی دارند و نمود آنها همان مفهوم تکلیف الهی است. با فرض عینی بودن اخلاقیات لاجرم باید پذیرفت که برای تکالیف عینی اخلاقی باید منبعی وجود داشته باشد. این منبع نمی تواند غیر شخص باشد؛ زیرا غیر شخص فروتر از شخص است و آن که فروتر از شخص است نمی تواند برای شخص تکلیفی تعیین کند. و این منبع نمی تواند خود هر فرد باشد زیرا فرد می تواند خود را از قید هر تکلیفی برهاند و مکلف به هیچ چیز تباشد. و نیز این منبع نمی تواند جامعه باشد زیرا اینها اگر ما را به انجام کاری غیر اخلاقی وادارند هیچ حجیت اخلاقی برای ما ندارند. در نتیجه تنها خدا می ماند که می تواند منشأ تکالیف ما باشد.
مسئله مهمی که برای فراطبیعت گرایان مطرح است این است که چگونه می توان از خواست خداوند با خبر شد؟ سیر تطور فراطبیعت گرایی مسیحی جوابی تقریباً جامع به این سوال داده است اما متأسفانه به سبب ضعف فلاسفه یهودی و مسلمان در امور فلسفه اخلاق در فلسفه این دو دین هیچ جواب مشخصی نمی توان یافت. پاسخ این سوال از منظر مسیحیان در چهار چیز خلاصه می شود: کتاب مقدس، کلیسا، نیایش و عقل. کتاب مقدس از این منظر بنیان سه شاخصه بعدی است و به ترتیب اهمیت دیگر شاخصهها منظم شده اند.
در عین حال انتقادات فراوانی نیز به طبیعت گرایی وارد است. به عنوان مثال یکی از مهمترین ایرادات به فراطبیعت گرایی را عنوان می کنیم:
تنها اصل قطعی جهان ما امتناع تناقض است. همه اصول شناختی ذهن انسان وجود دارند و وجودشان مستمر است به سبب وجود این اصل که هرگز دو امر متناقض نمی توانند مجتمع شوند. خداناباوران می گویند که «کشتن بد است.»؛ با این حال این افراد قائل به وجود خداوند نیستند. اگر فراطبیعت گرایی صادق باشد پس این اصل نیز صادق است که هرچه بد است به سبب نهی خدا بد است. با فرض این امر باید قائل شویم که اندیشه خداناباوران حاوی تناقض است. اما ما تناقضی در اندیشه خداناباوران نمی بینیم. پس فراطبیعت گرایی صادق نیست.
طبیعتگرایی
دستگاه شناختی ذهن انسان به راحتی میان اموری که در طبیعت وحود دارند و اموری که این چنین نیستند فرق می گذارد. مسئله این جاست که آیا درست و نادرست در طبیعت موجود است یا خیر؟ در حقیقت این سوالی است از جوهر اخلاق؛ سوالی درباره این که اخلاق طبیعی است یا مصنوع دست بشر است. پاسخ مثبت به مسئله مذکور، یعنی وجود درست و نادرست در طبیعت، گرایش طبیعی در اخلاق را بر می سازد.
طبیعت گرایان معتقدند که امور اخلاقی به صورت بنیادین در طبیعت هست. این افراد برآنند که اخلاق بخشی از نظام طبیعی اشیاء است. اندیشیدن درباره اخلاق به مثابه امری طبیعی تنها در سنت قانون طبیعی معنا می یابد. این دیدگاه اخلاقی بر این اصل بنیان نهاده شده است که اخلاقیات در ذات طبیعت و بشر نهادینه است و در همه جای جهان اخلاق تنها یکی است. در نتیجه این نظرگاه در مخالفت کامل با نسبی نگری اخلاقی است.
طبیعتی که مد نظر طبیعت گرایان است گاه به معنای کل کیهان استفاده شده و گاه به معنای طبیعت بشر. اما تا پیش از قرن بیستم غالباً تصور می شد که خداوند واضع و منشأ قانون طبیعی و به تبع آن اخلاق طبیعی است. برخی نیز معتقد بودند که خداوند خود حالّ در طبیعت و یا حتی عین طبیعت است. در قرون وسطی این اندیشه باب گشت که خداوند خالقی است که خود خارج از مخلوقش قرار دارد و خلق خدا همین طبیعت است و در نتیجه خدا در طبیعت نیست. اواخر قرن نوزدهم با در آمدن علم و فلسفه از زیر یوغ دین، این علوم تغییرات عمیقی کردند. در این میان اندیشه اخلاقی طبیعت گرا نیز بی نصیب نماند. در حقیقت در اوایل قرن بیستم نگاه اخلاق طبیعی از زیر نگاه خدا در آمد و خود طبیعت را به مثابه آن کل اخلاقی مفروض شد.
مهمترین تأثیر گرایش طبیعی در اخلاق، زاده شدن فلسفه سیاسی، فلسفه علوم اجتماعی و فلسفه حقوق است. در حقیقت با بررسیدن اخلاق طبیعی راه شناخت تکوین قانون طبیعی بر ما گشوده میشود و از این طریق مرز میان فلسفه اخلاق با شاخههای مذکور مشخص می شود.
دلیری
شجاعت یا دلیری به معنی ازجانگذشتگی و دلاوری در کارزار است و صفتی است از صفات نیکوی چهارگانه که حد وسط بیباکی (تهور) و ترسو بودن بهشمار میآید. واژه شجاعت عربی است.
گفتاوردها پیرامون دلیری
ملاصدرا در تعریف آن گوید :
شجاعت خلقی است که افعال میان تهور و جبن که از رذائلاند دو طرف افراط و تفریط آنند.
ابن مسکویه نیز دلیر را اینگونه تعریف میکند:
شجاع به هر کسی که دست به هر کار خطرناک و ترس آوری بزند نمیتوان گفت، مثلاً اگر کسی در موقع خطرات طبیعی مثل زلزله، آتشفشان و یا گردباد، و یا از انواع بیماریهای خطرناک، و یا در کشتی به موقع طوفان نترسد شجاع نمیتوان نامید.
ویا در زمانی که همه چیز خوب و امن است مثلاً تصمیم بگیرد خود را از پشت بام به پایین پرت کند و یا بدون بلد بودن شنا وسط دریای خروشان بپرد شجاع نمیتوان نامید. اینگونه اشخاص بیشتر از اینکه شجاع باشند، احمق و یا سادهلوح محسوب میشوند. بلکه شجاع کسی است که در هر سختی و مصیبتی و ناگواری، صبور باشد و زود خود را نبازد و شکوه و شکایت نکند، و همچنین در زمانیکه کاری را بر عهده میگیرد (که از لحاظ عقل و منطق و شرط زمان و مکان پسندیده است) دیگر در هنگام اجرا اگر با گرفتاری و مشکلی برخورد کرد و احیاناً مورد تهدید و فشاری هم قرار گرفت، جا نزند و با استواری و استقامت کارش را دنبال کند.
این شخص را شجاع نامند و این صفت، یک صفت پسندیده و مورد تشویق و احترام میباشد.
رازداری
رازداری (به انگلیسی: Confidentiality)مجموعه از مقررات توافق شده یا پیمان نامههایی است که دسترسی به بعضی اطلاعات شخصی یا تجاری را محدود میکند.
در وکالت
وکلای دعاوی بایستی برای دفاع از منافع موکلان خود به کلیه اظلاعات آنها که برای دفاع لازم است دسترسی داشته باشند. از این نظر رازداری بین وکیل و موکل نه تنها از مجاری قانونی بلکه طبق عهد نامه دوطرف که امضاء شده است لازمالاجرا است. البته بعضی از حوزه های قضایی برای این رازدای استثنا هایی قائل شده اند، بخصوص در مواردی که حفظ رازداری وکیل ممکنست به جرم و جنایت و یا تخریب اموال عموم یا اشخاص منجر شود. در این موارد وکیل می تواند به میل خود حداقل اطلاعات را افشا نماید، هرچند در بعضی حوزه های قضایی وکیل درصورت اطلاع ملزم به افشا است.
در پزشکی
رازداری یکی از ارکان اصلی رابطه پزشک و بیمار است. پزشکان برطبق قانون و بر اساس سوگندنامه بقراط، ملزم به حفظ اسرار مربوط به امراض بیماران خود هستند. در عین حال که دادگاه ها نمیتوانند پزشکان را اجبار به ترک رازداری نمایند، در بعضی از کشورها و بعضی ایالت های آمریکا پزشکان را ملزم به افشای اطلاعات بیماران نموده اند. این موارد محدود به اطلاعاتی مانند اقدام به خودکشی، کودک آزاری، مجروحان با زخم گلوله، اطلاع رسانی بیماری های منتقل شونده از تماس جنسی به همسر بیمار و سقط جنین زیر سن قانونی به والدین است.
در تجارت
رازداری در تجارت عبارتست از حفظ اطلاعات مربوط به فرمول، طرح، روش، الگو، تکنیک، فرایند یا مجموعهای از آنها که بصورت کلی در نزد شرکت ها وجود دارد و مزایای اقتصادی آنها را در مقابل رقیبان تضمین می کند.
اخلاق کاربردی
اخلاق کاربردی در حقیقت زیر مجموعهٔ اخلاق هنجاری است.به تعبیر دیگر، اخلاق کاربردی همان اخلاق هنجاری است، البته در حوزههای خاصی از زندگی فردی و اجتماعی.
اخلاق کاربردی در حقیقت درصدد آن است که کاربرد و اعمال منظم و منطقی نظریهٔ اخلاقی را در حوزهٔ مسائل اخلاقی خاص نشان دهد.مباحثی مانند اخلاق دانش اندوزی و علم اندوزی، اخلاق پژوهش، اخلاق نقد، اخلاق گفتگو، اخلاق محیط زیست، اخلاق سیاست، اخلاق جنسی، اخلاق همسرداری، اخلاق معیشت را می توان از مباحث مربوط به اخلاق کاربردی به شمار آورد.
اخلاق کاربردی شامل اخلاق حرفه ای هم می شود.منظور از اخلاق حرفه ای، تامل دربارهٔ ابعاد اخلاق مسائل و موضوعاتی است که به مشاغل خاصی مربوط می شود.مانند اخلاق پزشکی، اخلاق تجارت، اخلاق روزنامه نگاری و امثال آن.
به طور خلاصه می توان گفت اخلاق کاربردی، عبارت است از کاربرد و تطبیق استدلال ها، اصول، ارزشها و ایده آلهای اخلاقی دربارهٔ رفتارهای اخلاقی، اعم از رفتارهای فردی و اجتماعی، با توجه ویژه به معضلات و تعارضات اخلاقی.هدف از این نوع پژوهش نیز ارزش گذاری و ارزیابی اخلاقی و در نتیجه پذیرش یا انکار آن خط مشیها ورفتارها است.
بنابراین، هر یک از مکاتب اخلاقی، دارای اخلاق کاربردی خاص خود است.برای نمونه، اخلاق کاربردی پذیرفتهٔ مکتب سودگرایی، قدرت گرایی یا قرارداد گرایی، با اخلاق کاربردی پذیرفته مکتب اخلاقی اسلام کاملا متفاوت است.زیرا هر مکتبی بر اساس اصول و ضوابط اخلاقی خود به بررسی احکام اخلاقی در موارد خاص و ارائهٔ راه حل برای موارد تعارض وظایف می پردازند.
به خصایلی که موجب فضل و بزرگ منشی می شوند فضیلت می گویند. فضایل را می توان در پنج گروه تقسیم کرد: فضایل طبیعی (نظیر قدرت، سرعت)؛ فضایل اکتسابی (نظیر مهارت در نواختن ساز، بخشایش)؛ فضایل مربوط به خلق و خو (نظیر خوش خلقی، شوخ طبعی)؛ خصایل دینی (نظیر ایمان، پارسایی)؛ خصایل مربوط به منش (نظیر نیک خواهی، مهربانی). به مجموعه این صفات که باعث میشود تا فردی را بزرگ منش و نیک بنامیم فضایل می گوییم.
اخلاق مبتنی بر فضیلت عمدتاً با اشخاص سر و کار دارد. البته منظور از این سخن این نیست که این شاخه از فلسفه اخلاق محدود به داوری در مورد اشخاص است، بلکه افزون بر آن این گرایش، به راهنمایی کردار نیز می پردازد. خوب بودن حکم تعیین کننده فلسفه اخلاق معطوف به فضیلت است.
اخلاق مبتنی بر فضیلت با هر فضیلتی درگیر نیست بلکه تنها فضایلی خاص را مورد مطالعه و بررسی قرار می دهد. در حقیقت سر و کار این شاخه از فلسفه اخلاق با فضایل اخلاقی است. فضایل اخلاقی یعنی فضایلی که اخلاقی نامیدنشان موجه است. این توجیه یکی از وظایف فیلسوفان اخلاق مبتنی بر فضیلت است. مسئله دیگر این است که اخلاق مبتنی بر فضیلت به فضایل اکتسابی می پردازد نه فضایل طبیعی. فضایل طبیعی از حیث اخلاقی خنثی هستند.
اصولاً فلسفه اخلاق مبتنی بر فضیلت در میان فیلسوفان باستان رواج داشته است؛ با این حال نمی توان گفت که این گرایش در دوران رنسانس، روشنگری و قرن بیستم منسوخ گشته است. گرایش به فضیلت و فضیلت مندی همیشه در میان فلاسفه اخلاق مشهود بوده؛ با این وجود مهمترین فیلسوفان اخلاق مبتنی بر فضیلت عبارتند از:
افلاطون: از نظر افلاطون فضیلت هر شئ همان چیزی است که آن شئ را قادر می سازد تا وظیفه خاص خود را به خوبی انجام دهد. یعنی این که اگر تمام اجزاء یک نظام برای انجام دادن کار مورد انتظار از آن نظام در حالت متکامل قرار داشته باشند آن نظام، نظامی فضیلتمند است.
ارسطو: ارسطو معتقد است که انسان دارای فضایل عقلی است؛ فضایل عقلی مشتملند بر فضایل نظری و فضایل عملی. انسانها ممکن است از هیچ یک از این فضایل برخوردار نباشند، ممکن است یکی از این دو را داشته باشند و یا این که ممکن است از هر دوی آنها بهره مند باشند. از نظر ارسطو عقل زمانی به نحو احسن عمل میکند که هر دوی این فضایل را در خود داشته باشد. از منظر معلم اول کمالات و فضایل اخلاقی در ارتباط با بخش غیرعقلانی نفس هستند. این بخش نفس بخشی است مرتبط با برآوردن امیال و خواهش ها. اگر عقل بر این بخش نفس نظارت کند آن چه به دست می آید فضیلت است.
عدالت
همه ما با مفهوم عدالت تا اندازه ای مأنوسیم. این مفهوم در سرتاسر مناسبات و تعاملات روزمره ما جاری و ساری است. با وجود این ادراک شهودی از اخلاق، اکثر ما تعریف روشنی از عدالت در دست نداریم. به هر حال عدالت یکی از غامضترین و دشوارترین مفاهیم فلسفه اخلاق است و برای شناخت این مفهوم باید درکی کافی از چیستی فلسفه اخلاق داشت.
از دیدگاه ارسطو می توان عدالت را از دو منظر دید؛ یکی این که عدالت را به مثابه کل اخلاق بنگریم. یعنی هر آنچه درست است و نیک است عادلانه است و هر آنچه که عادلانه می خوانیم لاجرم درست است و نیک است. منظر دیگر این است که عدالت را به مثابه خود عدالت _ یعنی جزیی از اخلاقیات_ در نظر بگیریم. در این صورت عدالت تعریف خاص خود را دارد و ما می توانیم امری را عادلانه یا غیر عادلانه بخوانیم و از آن پس روشن کنیم که فلان عمل عادلانه آیا اخلاقی هم بود یا خیر؟
تئوریهای عدالت عمدتاً مبتنی بر درک متقابل اجتماعی شکل می گیرند و نیز ارتباط میان قانون و اخلاقیات حاکم بر جوامع بر اساس تئوریهای عدالت میسر می شود. نتیجتاً تمام این امور موجب موضع گیری اندیشمندان در رابطه با امر اخلاقی میشود و مانند هر موضوع فلسفی دیگر عقاید مختلف پیرامون این مسئله شکل می گیرد. عده ای قائل به عدالت طبیعی می شوند و عده ای در پی عدالت قانونی می روند. کسانی گرایش یه عدالت توزیعی پیدا می کنند و کسانی از پایه عدالت را غیراخلاقی عنوان می کنند.
با تمام این اوصاف از زمان افلاطون تا به امروز عدالت یکی از پیچیدهترین و جذابترین مباحث فلسفه اخلاق باقی مانده است.
سعادت
می توان اینگونه گفت که به نتیجه اخلاقی رضایت بخش برای انسان سعادت می گویند. پس سعادت امری مطلقاً اخلاقی است. سعادت یا رضایت وجدانی پدیدار نمی شود مگر به سبب عمل درست و نیک اخلاقی. به همین سبب هم سعادت در گفتمان دینی و مذهبی نیز مشهود است؛ زیرا این نوع گفتمانها نیز غایتی اخلاقی دارند.
از زمانی که فلسفه اخلاق وجود داشته، مبحث سعادتمندی نیز مطرح بوده است و عملاً ذهن غایت نگر انسان ناخواسته مجبور به ادراک تصور سعادت است. هیچ دستگاه فلسفی اخلاقی هرگز منکر وجود و حضور سعادت نمی شود؛ زیرا با از بین رفتن مفهوم سعادت، غایت فلسفه اخلاق از بین رفته و این فلسفه کارکرد خود را از دست می دهد. همه فلاسفه اخلاق مطالب بسیار درباره سعادت و سعادت مندی، چه به صورت مستقیم و چه به صورت ضمنی، نگاشته اند.
مسلم است که نگاه همه فلاسفه به امر سعادت یکسان نیست و هر فیلسوفی بر مبنای دستگاه فکری اش سعادت را تعبیری خاص کرده. جالب آن که مهمترین مؤلفه در به وجود آمدن مکاتب مختلف فلسفه اخلاق، تفاوت تعبیر چیستی سعادت از منظر فلاسفه مختلف است.
مکاتب
فراطبیعتگرایی
فراطبیعت گرایی تقریباً ابتداییترین نظام کامل اخلاقی است که بشر به آن دست یافته. این دیدگاه پایه اخلاقی ادیان بوده است و از دل نظام اخلاقی دینی به فلسفه اخلاق وارد شده است. بسیاری بر آنند که اصولاً فلسفه اخلاق این همان است با اندیشه دینی. هرچند که گزاره مذکور کاملاً مردود است اما گویای اهمیت این ریشه اخلاقیات نیز هست. فراطبیعت گرایی ناظر بر نظریه فرمان الهی است. به این معنا که آن چیزی درست و خوب است که خداوند به آن امر کند و آن چیزی نادرست و شر است که خداوند ما را از آن نهی کند. در نتیجه فراطبیعت گرایی گرایشی است از فلسفه اخلاق که تحت تأثیر فرامین الهی شکل گرفته است.
کسانی که قائل به گرایش فراطبیعی در اخلاق هستند در درجه اول ایمان به خدا را مسلم فرض می کنند. بر همین اساس تمام قوانین بنیادین از این منظر بر خواست خداوند مبتنی اند. به تبع قوانین بنیادین هستی بنیانهای اخلاقی نیز بر خواست خدا استوار می شوند و در نتیجه خداوند خالق نظام اخلاقی فرض گرفته میشود و خواست او موجب تمایز درست از نادرست می گردد.
همچنین فراطبیعت گرایان معتقد به عینیت اخلاقند. یعنی اخلاقیات وجود خارجی و عینی دارند و نمود آنها همان مفهوم تکلیف الهی است. با فرض عینی بودن اخلاقیات لاجرم باید پذیرفت که برای تکالیف عینی اخلاقی باید منبعی وجود داشته باشد. این منبع نمی تواند غیر شخص باشد؛ زیرا غیر شخص فروتر از شخص است و آن که فروتر از شخص است نمی تواند برای شخص تکلیفی تعیین کند. و این منبع نمی تواند خود هر فرد باشد زیرا فرد می تواند خود را از قید هر تکلیفی برهاند و مکلف به هیچ چیز تباشد. و نیز این منبع نمی تواند جامعه باشد زیرا اینها اگر ما را به انجام کاری غیر اخلاقی وادارند هیچ حجیت اخلاقی برای ما ندارند. در نتیجه تنها خدا می ماند که می تواند منشأ تکالیف ما باشد.
مسئله مهمی که برای فراطبیعت گرایان مطرح است این است که چگونه می توان از خواست خداوند با خبر شد؟ سیر تطور فراطبیعت گرایی مسیحی جوابی تقریباً جامع به این سوال داده است اما متأسفانه به سبب ضعف فلاسفه یهودی و مسلمان در امور فلسفه اخلاق در فلسفه این دو دین هیچ جواب مشخصی نمی توان یافت. پاسخ این سوال از منظر مسیحیان در چهار چیز خلاصه می شود: کتاب مقدس، کلیسا، نیایش و عقل. کتاب مقدس از این منظر بنیان سه شاخصه بعدی است و به ترتیب اهمیت دیگر شاخصهها منظم شده اند.
در عین حال انتقادات فراوانی نیز به طبیعت گرایی وارد است. به عنوان مثال یکی از مهمترین ایرادات به فراطبیعت گرایی را عنوان می کنیم:
تنها اصل قطعی جهان ما امتناع تناقض است. همه اصول شناختی ذهن انسان وجود دارند و وجودشان مستمر است به سبب وجود این اصل که هرگز دو امر متناقض نمی توانند مجتمع شوند. خداناباوران می گویند که «کشتن بد است.»؛ با این حال این افراد قائل به وجود خداوند نیستند. اگر فراطبیعت گرایی صادق باشد پس این اصل نیز صادق است که هرچه بد است به سبب نهی خدا بد است. با فرض این امر باید قائل شویم که اندیشه خداناباوران حاوی تناقض است. اما ما تناقضی در اندیشه خداناباوران نمی بینیم. پس فراطبیعت گرایی صادق نیست.
طبیعتگرایی
دستگاه شناختی ذهن انسان به راحتی میان اموری که در طبیعت وحود دارند و اموری که این چنین نیستند فرق می گذارد. مسئله این جاست که آیا درست و نادرست در طبیعت موجود است یا خیر؟ در حقیقت این سوالی است از جوهر اخلاق؛ سوالی درباره این که اخلاق طبیعی است یا مصنوع دست بشر است. پاسخ مثبت به مسئله مذکور، یعنی وجود درست و نادرست در طبیعت، گرایش طبیعی در اخلاق را بر می سازد.
طبیعت گرایان معتقدند که امور اخلاقی به صورت بنیادین در طبیعت هست. این افراد برآنند که اخلاق بخشی از نظام طبیعی اشیاء است. اندیشیدن درباره اخلاق به مثابه امری طبیعی تنها در سنت قانون طبیعی معنا می یابد. این دیدگاه اخلاقی بر این اصل بنیان نهاده شده است که اخلاقیات در ذات طبیعت و بشر نهادینه است و در همه جای جهان اخلاق تنها یکی است. در نتیجه این نظرگاه در مخالفت کامل با نسبی نگری اخلاقی است.
طبیعتی که مد نظر طبیعت گرایان است گاه به معنای کل کیهان استفاده شده و گاه به معنای طبیعت بشر. اما تا پیش از قرن بیستم غالباً تصور می شد که خداوند واضع و منشأ قانون طبیعی و به تبع آن اخلاق طبیعی است. برخی نیز معتقد بودند که خداوند خود حالّ در طبیعت و یا حتی عین طبیعت است. در قرون وسطی این اندیشه باب گشت که خداوند خالقی است که خود خارج از مخلوقش قرار دارد و خلق خدا همین طبیعت است و در نتیجه خدا در طبیعت نیست. اواخر قرن نوزدهم با در آمدن علم و فلسفه از زیر یوغ دین، این علوم تغییرات عمیقی کردند. در این میان اندیشه اخلاقی طبیعت گرا نیز بی نصیب نماند. در حقیقت در اوایل قرن بیستم نگاه اخلاق طبیعی از زیر نگاه خدا در آمد و خود طبیعت را به مثابه آن کل اخلاقی مفروض شد.
مهمترین تأثیر گرایش طبیعی در اخلاق، زاده شدن فلسفه سیاسی، فلسفه علوم اجتماعی و فلسفه حقوق است. در حقیقت با بررسیدن اخلاق طبیعی راه شناخت تکوین قانون طبیعی بر ما گشوده میشود و از این طریق مرز میان فلسفه اخلاق با شاخههای مذکور مشخص می شود.
دلیری
شجاعت یا دلیری به معنی ازجانگذشتگی و دلاوری در کارزار است و صفتی است از صفات نیکوی چهارگانه که حد وسط بیباکی (تهور) و ترسو بودن بهشمار میآید. واژه شجاعت عربی است.
گفتاوردها پیرامون دلیری
ملاصدرا در تعریف آن گوید :
شجاعت خلقی است که افعال میان تهور و جبن که از رذائلاند دو طرف افراط و تفریط آنند.
ابن مسکویه نیز دلیر را اینگونه تعریف میکند:
شجاع به هر کسی که دست به هر کار خطرناک و ترس آوری بزند نمیتوان گفت، مثلاً اگر کسی در موقع خطرات طبیعی مثل زلزله، آتشفشان و یا گردباد، و یا از انواع بیماریهای خطرناک، و یا در کشتی به موقع طوفان نترسد شجاع نمیتوان نامید.
ویا در زمانی که همه چیز خوب و امن است مثلاً تصمیم بگیرد خود را از پشت بام به پایین پرت کند و یا بدون بلد بودن شنا وسط دریای خروشان بپرد شجاع نمیتوان نامید. اینگونه اشخاص بیشتر از اینکه شجاع باشند، احمق و یا سادهلوح محسوب میشوند. بلکه شجاع کسی است که در هر سختی و مصیبتی و ناگواری، صبور باشد و زود خود را نبازد و شکوه و شکایت نکند، و همچنین در زمانیکه کاری را بر عهده میگیرد (که از لحاظ عقل و منطق و شرط زمان و مکان پسندیده است) دیگر در هنگام اجرا اگر با گرفتاری و مشکلی برخورد کرد و احیاناً مورد تهدید و فشاری هم قرار گرفت، جا نزند و با استواری و استقامت کارش را دنبال کند.
این شخص را شجاع نامند و این صفت، یک صفت پسندیده و مورد تشویق و احترام میباشد.
رازداری
رازداری (به انگلیسی: Confidentiality)مجموعه از مقررات توافق شده یا پیمان نامههایی است که دسترسی به بعضی اطلاعات شخصی یا تجاری را محدود میکند.
در وکالت
وکلای دعاوی بایستی برای دفاع از منافع موکلان خود به کلیه اظلاعات آنها که برای دفاع لازم است دسترسی داشته باشند. از این نظر رازداری بین وکیل و موکل نه تنها از مجاری قانونی بلکه طبق عهد نامه دوطرف که امضاء شده است لازمالاجرا است. البته بعضی از حوزه های قضایی برای این رازدای استثنا هایی قائل شده اند، بخصوص در مواردی که حفظ رازداری وکیل ممکنست به جرم و جنایت و یا تخریب اموال عموم یا اشخاص منجر شود. در این موارد وکیل می تواند به میل خود حداقل اطلاعات را افشا نماید، هرچند در بعضی حوزه های قضایی وکیل درصورت اطلاع ملزم به افشا است.
در پزشکی
رازداری یکی از ارکان اصلی رابطه پزشک و بیمار است. پزشکان برطبق قانون و بر اساس سوگندنامه بقراط، ملزم به حفظ اسرار مربوط به امراض بیماران خود هستند. در عین حال که دادگاه ها نمیتوانند پزشکان را اجبار به ترک رازداری نمایند، در بعضی از کشورها و بعضی ایالت های آمریکا پزشکان را ملزم به افشای اطلاعات بیماران نموده اند. این موارد محدود به اطلاعاتی مانند اقدام به خودکشی، کودک آزاری، مجروحان با زخم گلوله، اطلاع رسانی بیماری های منتقل شونده از تماس جنسی به همسر بیمار و سقط جنین زیر سن قانونی به والدین است.
در تجارت
رازداری در تجارت عبارتست از حفظ اطلاعات مربوط به فرمول، طرح، روش، الگو، تکنیک، فرایند یا مجموعهای از آنها که بصورت کلی در نزد شرکت ها وجود دارد و مزایای اقتصادی آنها را در مقابل رقیبان تضمین می کند.
اخلاق کاربردی
اخلاق کاربردی در حقیقت زیر مجموعهٔ اخلاق هنجاری است.به تعبیر دیگر، اخلاق کاربردی همان اخلاق هنجاری است، البته در حوزههای خاصی از زندگی فردی و اجتماعی.
اخلاق کاربردی در حقیقت درصدد آن است که کاربرد و اعمال منظم و منطقی نظریهٔ اخلاقی را در حوزهٔ مسائل اخلاقی خاص نشان دهد.مباحثی مانند اخلاق دانش اندوزی و علم اندوزی، اخلاق پژوهش، اخلاق نقد، اخلاق گفتگو، اخلاق محیط زیست، اخلاق سیاست، اخلاق جنسی، اخلاق همسرداری، اخلاق معیشت را می توان از مباحث مربوط به اخلاق کاربردی به شمار آورد.
اخلاق کاربردی شامل اخلاق حرفه ای هم می شود.منظور از اخلاق حرفه ای، تامل دربارهٔ ابعاد اخلاق مسائل و موضوعاتی است که به مشاغل خاصی مربوط می شود.مانند اخلاق پزشکی، اخلاق تجارت، اخلاق روزنامه نگاری و امثال آن.
به طور خلاصه می توان گفت اخلاق کاربردی، عبارت است از کاربرد و تطبیق استدلال ها، اصول، ارزشها و ایده آلهای اخلاقی دربارهٔ رفتارهای اخلاقی، اعم از رفتارهای فردی و اجتماعی، با توجه ویژه به معضلات و تعارضات اخلاقی.هدف از این نوع پژوهش نیز ارزش گذاری و ارزیابی اخلاقی و در نتیجه پذیرش یا انکار آن خط مشیها ورفتارها است.
بنابراین، هر یک از مکاتب اخلاقی، دارای اخلاق کاربردی خاص خود است.برای نمونه، اخلاق کاربردی پذیرفتهٔ مکتب سودگرایی، قدرت گرایی یا قرارداد گرایی، با اخلاق کاربردی پذیرفته مکتب اخلاقی اسلام کاملا متفاوت است.زیرا هر مکتبی بر اساس اصول و ضوابط اخلاقی خود به بررسی احکام اخلاقی در موارد خاص و ارائهٔ راه حل برای موارد تعارض وظایف می پردازند.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایتکد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایتکدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاًَ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماً کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
پیادهسازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه
جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده میکند. برنامهنویس زمانی که اشیا به وجود میآیند، این حافظه را تعیین میکند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظهاست. زمانی که مرجعی برای شیهای باقیمانده نیست، شیهای غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب میشوند. اگر برنامهنویس مقداری از حافظه را برای شیهایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق میافتند.
یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامهنویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده میگیرد. در بعضی از زبانها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده میشود. و یا بهطور صریح اختصاص داده شده و از heap بازگردانده میشود. در هر کدام از این راهها، مسئولیت ادارهٔ اقامت حافظه با برنامهنویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق میافتد. اگر برنامه تلاش کند به حافظهای را که هماکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بیثبات شده و یا تخریب شود. این ممکن است با استفاده از اشارهگر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد میشود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. بهطوری که این زمانی اتفاق میافتد که برنامه بیکار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده میشوند.
جاوا از نوع اشارهگر ریاضی C و ++C پشتیبانی نمیکند. در جایی که آدرس اشیا و اعداد صحیح میتوانند به جای هم استفاده شوند. همانند ++C و بعضی زبانهای شیگرای دیگر، متغیرهای نوعهای اولیهٔ جاوا شیگرا نبودند. مقدار نوعهای اولیه، مستقیماً در فیلدها ذخیره میشوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از هیپ استفاده میشود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شیگرای خالص به حساب نمیآید.
گرامر
گرامر جاوا وسیعتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص میباشد. فقط نوع دادة اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
بر طبق قرارداد فایل هل بعد از کلاسهای عمومی نام گذاری میشوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد میشود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما میتواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.
کلاسی که به صورت خصوصی تعریف میشود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف میشود یک کلاس فایل تولید میکند. که نام این کلاس فایل همنام کلاس است با پسوند.class
کلمه کلیدی public (عمومی) برای قسمتهایی که میتوانند از کدهای کلاسهای دیگر صدا زده بشوند، به کار برده میشود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونههایی از کلاس، نشان میدهد. فقط تابعهای ایستا میتوانند توسط اشیا بدون مرجع صدا زده شوند. دادههای ایستا به متغیرهایی که ایستا نیستند، نمیتوانند دسترسی داشته باشند.
کلمهٔ کلیدی void (تهی) نشان میدهد که تابع main هیچ مقداری را بر نمیگرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا میزند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.
تابع main باید آرایهای از اشیا رشتهای را بپذیرد. تابع main میتواند از آرگومانهای متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه میدهد اعدادی دلخواه از اشیا رشتهای را فراخوانی کند. پارامترstring[]args آرایهای از اشیا رشته ایست که شامل تمام آرگومانهایی که به کلاس فرستاده میشود، است.
چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کردهاست. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه میکند.
توزیعهای جاوا
منظور از توزیع جاوا پیادهسازیهای مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانههای استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیعکنندهٔ عمده جاوا وجود دارند:
سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن میباشد. در اکثر موارد هنگامی که گفته میشود جاوا منظور توزیع سان میباشد.
GNU Classpath: این توزیع از سوی موسسه نرمافزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهرهگیری از توزیع شرکت سان از اول پیادهسازی شدهاست. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شدهاست. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیطهای احرایی برنامههای جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا میکند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرمافزارهای آزاد به صورت متن باز منتشر کردهاست و قول انتشار قسمت بسیار کوچکی از این مجموعه را که بهدلیل استفاده از کدهای شرکتهای ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها دادهاست.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه میباشد که توسط مایکروسافت و در چارچوب.net ارائه شدهاست. انتظار اینکه در سیستمعاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی میباشد که امکان برنامه نویسی Aspect Oriented را به جاوا میافزاید. این برنامه توسط بنیاد برنامهنویسی جلوهگرا و به صورت کدباز ارائه شدهاست.
کلاسهای خاص
برنامک (برنامههای کاربردی کوچک)
اپلت جاواها برنامههایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شدهاند. واژهٔ import باعث میشود کامپایلر جاوا کلاسهای javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه میدهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست میکند. کلاس اپلت یک تابع پنجرهای مجرد است که برنامههای کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم میکند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل میکند، برای اینکه کدی که اپلت را نمایش میدهد، فراهم کند. تابع paint شیهای گرافیکی را که شامل زمینههای گرافیکی هستند را میفرستد تا برای نمایش اپلتها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا میزند.
جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم میکند. و شامل مکانیزمهایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستمهای تجاری موجود است.servlet قسمتی از javaEE است که به درخواستهای مشتری پاسخ میدهد.
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شدهاند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد میکند.
اولین جملهٔ import کامپایلر جاوا را هدایت میکندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایتکد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایتکدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاًَ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماً کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
پیادهسازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه
جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده میکند. برنامهنویس زمانی که اشیا به وجود میآیند، این حافظه را تعیین میکند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظهاست. زمانی که مرجعی برای شیهای باقیمانده نیست، شیهای غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب میشوند. اگر برنامهنویس مقداری از حافظه را برای شیهایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق میافتند.
یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامهنویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده میگیرد. در بعضی از زبانها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده میشود. و یا بهطور صریح اختصاص داده شده و از heap بازگردانده میشود. در هر کدام از این راهها، مسئولیت ادارهٔ اقامت حافظه با برنامهنویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق میافتد. اگر برنامه تلاش کند به حافظهای را که هماکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بیثبات شده و یا تخریب شود. این ممکن است با استفاده از اشارهگر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد میشود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. بهطوری که این زمانی اتفاق میافتد که برنامه بیکار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده میشوند.
جاوا از نوع اشارهگر ریاضی C و ++C پشتیبانی نمیکند. در جایی که آدرس اشیا و اعداد صحیح میتوانند به جای هم استفاده شوند. همانند ++C و بعضی زبانهای شیگرای دیگر، متغیرهای نوعهای اولیهٔ جاوا شیگرا نبودند. مقدار نوعهای اولیه، مستقیماً در فیلدها ذخیره میشوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از هیپ استفاده میشود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شیگرای خالص به حساب نمیآید.
گرامر
گرامر جاوا وسیعتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص میباشد. فقط نوع دادة اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
بر طبق قرارداد فایل هل بعد از کلاسهای عمومی نام گذاری میشوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد میشود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما میتواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.
کلاسی که به صورت خصوصی تعریف میشود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف میشود یک کلاس فایل تولید میکند. که نام این کلاس فایل همنام کلاس است با پسوند.class
کلمه کلیدی public (عمومی) برای قسمتهایی که میتوانند از کدهای کلاسهای دیگر صدا زده بشوند، به کار برده میشود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونههایی از کلاس، نشان میدهد. فقط تابعهای ایستا میتوانند توسط اشیا بدون مرجع صدا زده شوند. دادههای ایستا به متغیرهایی که ایستا نیستند، نمیتوانند دسترسی داشته باشند.
کلمهٔ کلیدی void (تهی) نشان میدهد که تابع main هیچ مقداری را بر نمیگرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا میزند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.
تابع main باید آرایهای از اشیا رشتهای را بپذیرد. تابع main میتواند از آرگومانهای متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه میدهد اعدادی دلخواه از اشیا رشتهای را فراخوانی کند. پارامترstring[]args آرایهای از اشیا رشته ایست که شامل تمام آرگومانهایی که به کلاس فرستاده میشود، است.
چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کردهاست. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه میکند.
توزیعهای جاوا
منظور از توزیع جاوا پیادهسازیهای مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانههای استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیعکنندهٔ عمده جاوا وجود دارند:
سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن میباشد. در اکثر موارد هنگامی که گفته میشود جاوا منظور توزیع سان میباشد.
GNU Classpath: این توزیع از سوی موسسه نرمافزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهرهگیری از توزیع شرکت سان از اول پیادهسازی شدهاست. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شدهاست. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیطهای احرایی برنامههای جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا میکند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرمافزارهای آزاد به صورت متن باز منتشر کردهاست و قول انتشار قسمت بسیار کوچکی از این مجموعه را که بهدلیل استفاده از کدهای شرکتهای ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها دادهاست.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه میباشد که توسط مایکروسافت و در چارچوب.net ارائه شدهاست. انتظار اینکه در سیستمعاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی میباشد که امکان برنامه نویسی Aspect Oriented را به جاوا میافزاید. این برنامه توسط بنیاد برنامهنویسی جلوهگرا و به صورت کدباز ارائه شدهاست.
کلاسهای خاص
برنامک (برنامههای کاربردی کوچک)
اپلت جاواها برنامههایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شدهاند. واژهٔ import باعث میشود کامپایلر جاوا کلاسهای javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه میدهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست میکند. کلاس اپلت یک تابع پنجرهای مجرد است که برنامههای کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم میکند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل میکند، برای اینکه کدی که اپلت را نمایش میدهد، فراهم کند. تابع paint شیهای گرافیکی را که شامل زمینههای گرافیکی هستند را میفرستد تا برای نمایش اپلتها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا میزند.
جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم میکند. و شامل مکانیزمهایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستمهای تجاری موجود است.servlet قسمتی از javaEE است که به درخواستهای مشتری پاسخ میدهد.
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شدهاند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد میکند.
اولین جملهٔ import کامپایلر جاوا را هدایت میکندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.