Type conversation and casting

Type conversation and casting :

এখন কিভাবে টাইপ কনভার্সেশান করা যায় এবং কাস্টিং সম্পর্কে জানব।
টাইপ কনভার্সেশান হলে এক ধরনের ডেটা টাইপ কে আরেক টাইপের ডেটা টাইপে পরিবর্ত করা। প্রোগ্রামিং করার সময় অনেক সময় দেখা যায় যে int type variable কে float হিসেবে ব্যাবহার বা float কে int হিসেহে ব্যাবহার করা খুবি জরুরি হিসেবে কাজ করে ,এই ক্ষেত্রে cast operator use করে খুব সহজে type conversation করা যায়।
একটি উদাহরনের মাধ্যমে নিষয়টা দেখা যাক-
public class type_conversation {

public static void main(String arg[]){

int a=100;
float b=100.50f;

System.out.println(“a is “+ a+” b is “+ b);

int c;
c= a/(int)b;
System.out.println(“c is = “+c);

}
}
output is:
a is 100 b is 100.5
c is = 1

উপড়ের প্রোগ্রামে আমরা দেখতে পেলাম যে a কে b দিয়ে ভাগ দেওয়ার সময় কাস্টিং করা হয়েছে b কে ।কেন? না করলে কি হত ? জাভাতে সাধানত ফ্লোটকে int type এর সাথে operation করা যায় না । একটি ইরর মেসেজ দেখাবে । তাই b এর আগে (int ) দিয়ে b কে int type এ পরিবর্তন করা হয়েছে ।
এবং b =100.5 থেকে b=100 হয়েছে।

Advertisements

ভেরিয়েবল(Variable)

Variable:
এ পর্বে আমরা জানব ভেরিয়েবল কি ? এবং কিভাবে ভেরিয়েবল ব্যাবহার করা যায়
তবে c/c++ জানা থাকলে ভেরিয়েবলের সাথে পরিচিত থাকার কথা।
যারা জাভা দিয়ে প্রথম ল্যাঙ্গুয়েজ শেখা শুরু করেছেন শুধু তাদের জন্য এ পর্বটি ।
Variable এর বাংলা অর্থ দাড়ায় চলক। আমরা গনিত করতে গেলে যেমন চলক ব্যাবহার করি তেমনি প্রোগ্রামিং ল্যাংগুয়েজেও চলক ব্যাবহার করা হয়।
5x+ 6Y=30;
এখানে x,y হল চলক। এর মান আমরা যা দিবতাই হবে । তেমনি প্রোগ্রামিং ল্যাংগুয়েজে চলকের মান যা ইচ্ছা তাই দেওয়া যায় ।
তবে variable গুলো নির্দিষ্ট ডেটা টাইপের হতে হবে পরের পর্বে ডেটা টাইপ সম্পর্কে জানব।
তাহলে variable কি? যা মান বহন করে বা কোন মান প্রকাশের জন্য একপ্রকার মাধ্যম। যেমন-
Int x=5;
Float y=4.5;
এখানে x,y হল চলক। int , float হল ডাটা টাইপ।
আমরা এ নিয়ে একটি প্রোগ্রাম দেখি তাহলে ব্যাপারটা পরিষ্কার হবে—

 

public class variable {
public static void main(String arg[]){

int x=10;
float y=10.50f;
System.out.println(“Value of x is =”+x);
System.out.println(“Value of Y is =”+y);
float z=x+y;

System.out.println(“Total result =”+z);

}
}
আউটপুট :
Value of x is =10
Value of Y is =10.5
Total result =20.5
তাহলে দেখলাম x এর মান দিয়েছিলাম 10, y এর ১০.৫ তাই যখন x এর মান প্রিন্ট করলাম তখন ১০ প্রিন্ট করেছে এবং y এর মান ১০.৫ প্রিন্ট করেছে । আমরা যখন উভয়টা যোগ করেছি তখন তা ২০.৫ হয়েছে।
এখানে = হলে অ্যাসিনমেন্ট অপারেটর , পরের এক পর্বে আমরা আসাইনমেন্ট অপারেটর সম্পর্কে জানব।
এখন ভেরিয়েবলের ব্যবহার নিয়মটা জেনে নেওয়া যাক।
যেমন আমরা যদি লিখি int 456abc= 7478; তা হলে একটি এরর মেসেজ দেখাবে । কেন? কারন ভেরিয়েবল গানিতিক সংখ্যা ব্যাবহার করা যায় না।
যেগুলো ব্যাবহার করা যাবে না –
১. গানিতিক সংখ্যা ১,২,৩ , তবে কোন নাম দিয়ে লেখা যাবে ,অর্থাৎ প্রথমে লেখা যাবে না ।int nstu2004; লেখা যাবে।
২।ভেরিয়েবলের মাঝে ফাকা স্থান থাকতে পারবে না ।যেমন nstu cste; ভূল ;কিন্তু nstucste correct.
3.key word such int , main,vaoid ,float , Boolean ইত্যাদি ব্যাবহার করা যাবে না , তাহলে ইরর মেসেজ শো করবে।

কিভাবে ইনপুট নিতে হয়

এ পর্বে আমরা জানব কিভাবে জাভা প্রোগ্রামে কোন কিছু ইনপুট নিতে হয় ।

ইউজার হতে কোন কিছু ইনপুট নেওয়ার জন্য সচারাচর বর্তমানে Scanner use করা হয়ে থাকে ।

Scanner input =new Scanner(System.in);
এখানে input একটি ভেরিয়েবল , input না লিখে আমরা যে কোন কিছু দিতে পারি।
এখন আমরা এ বিষয়ক একটি প্রোগ্রাম দেখব যার মাধ্যমে কোন কিছু ইউজার হতে ইনপুট দিতে বলা হবে এবং তা প্রিন্ট করবে

import java.util.Scanner;
public class first_program {

public static void main(String arg[]){

Scanner input =new Scanner(System.in);
System.out.println(“Please write something “);
String line;

line=input.nextLine();

System.out.print(“Your write this —>”+line);

}

}

প্রোগ্রামটি রান কর Please write something

arif hasnat nstu
Your write this —>arif hasnat nstu
লেখা আসবে ,অর্থাৎ আমরা যে ইনপুট দেব তা প্রিন্ট করবে।
প্রোগ্রামটির ব্যাক্ষাঃ

আমরা জাভা প্রোগামে হেডার ফাইল ইম্পোর্ট করে থাকি । c/c++ এ include <Stdio.h>
করে থাকি কিন্তু জাভা ভাষায় হেডার ফাইল গুলো নির্দিষ্ট প্যাকেজের অন্তর্ভুক্ত থাকে যেগুলো আমরা ইমপোর্ট করে থাকি ।প্যাকেজ সম্পর্কে পরে আলোচনা করা হবে।
এখানে Scanner জাভা util package এর অন্তর্গত।
import java.util.Scanner;

first_program নামে ক্লাস
public class first_program {

মেন মেথড

public static void main(String arg[]){

input নামে একটি অব্জেক্ট তৈরি করলাম । যা পরে ব্যাবহার হবে।
Scanner input =new Scanner(System.in);
System.out.println(“Please write something “);
String type এর ভেরিয়েবল line create করলাম ।

String line;
এখনে line=input.nextLine(); তে বলা হল যে একটি স্ট্রিং টাইপের ইনপুট নেওয়ার জন্য ।

কয়েকপ্রকার ইনপুট নেওয়া যায় –যেমন
Input.nextInt(); নিলে ইন্টিজার টাইপের ইনপুট নিবে।
Input.nextFloat();নিলে Float টাইপের ইনপুট নিবে।
Input.nextDouble();নিলে Double টাইপের ইনপুট নিবে।
Input.nextChar();নিলে Char টাইপের ইনপুট নিবে।

line=input.nextLine();

line কে প্রিন্ট করে দিলাম ।
System.out.print(“Your write this —>”+line);

}
আশা করি বুঝতে পেরেছেন । কোন সমস্যা থাকলে অবশ্যি জানাবেন এই কামনা করি।

লেবেল(Label)

উইডোতে লেবেল প্রদর্শনের জন্য সাধারন্ভাবে লেবেল ব্যাবহার করা হয়-
লেবেল ব্যাবহার করার জন্য সাধারনত তিনটি ফরমেট ব্যাবহার করা হয়ঃ
1. Label()
2. Label(String Text)
3.Label (String Text, int AllignValue)
AllignValue গুলো হলো যথাক্রমে Label.LEFT, Label.RIGHT, Label.CENTER
লেবেল বিশিষ্ট একটি প্রোগ্রাম নিচে দেওয়া হল-
import java.awt.FlowLayout;
import java.awt.Label;

import javax.swing.JFrame;

public class c3 extends JFrame{

c3(){
setLayout(new FlowLayout());
Label lb=new Label(“NSTU”);
Label lb1=new Label(“CSTE”);
Label lbl2=new Label(“Arif Hasnat”);
add(lb);
add(lb1);
add(lbl2);

}
public static void main(String arg[]){

c3 c=new c3();
c.setSize(400, 400);
c.setVisible(true);
c.setDefaultCloseOperation(EXIT_ON_CLOSE);

}
Label
}

গ্রীড লেয়াঊট

GridLayout Arranges the components into rows and columns.
গ্রীড লেয়াঊট ম্যানেজার container কে গ্রীড এ ভাগ করে থাকে তার ফলে কম্পনেন্ট রো ও কলাম এ বিভক্ত হয়।প্রতিটি row and column এর একই width ও height থাকে। row এবং column গুলো বাম পার্শের উপড় থেকে ডান পার্শে বিস্তৃত হতে থাকে । এবং এভাবে চলতে থাকে শেষ পর্যন্ত।

একটি প্রোগ্রামের মাধ্যমে দেখা যাক-
import java.awt.GridLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;

public class GridLayoutFrame extends JFrame implements ActionListener
{
private JButton[] buttons;   private static final String[] names =
{ “one”, “two”, “three”, “four”, “five”, “six” };
private boolean toggle = true;
private Container container;
private GridLayout gridLayout1;
private GridLayout gridLayout2;
public GridLayoutFrame()
{
super( “GridLayout Demo” );
gridLayout1 = new GridLayout( 2, 3, 5, 5 );
gridLayout2 = new GridLayout( 3, 2 );
container = getContentPane();
setLayout( gridLayout1 );
buttons = new JButton[ names.length ];
for ( int count = 0; count < names.length; count++ )
{
buttons[ count ] = new JButton( names[ count ] );
buttons[ count ].addActionListener( this );
add( buttons[ count ] );
}
}
public void actionPerformed( ActionEvent event )
{
if ( toggle )
container.setLayout( gridLayout2 );
else
container.setLayout( gridLayout1 );

toggle = !toggle;
container.validate();
}
}

import javax.swing.JFrame;

public class GridLayoutDemo
{
public static void main( String[] args )
{
GridLayoutFrame gridLayoutFrame = new GridLayoutFrame();
gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
gridLayoutFrame.setSize( 300, 200 );
gridLayoutFrame.setVisible( true );
}
}

কোডের ব্যাক্ষা———–

import java.awt.GridLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JButton;

public class GridLayoutFrame extends JFrame implements ActionListener
{
private JButton[] buttons; // array of buttons
private static final String[] names =
{ “one”, “two”, “three”, “four”, “five”, “six” };
private boolean toggle = true; // toggle between two layouts
private Container container; // frame container
private GridLayout gridLayout1; // first gridlayout
private GridLayout gridLayout2; // second gridlayout

// no-argument constructor
public GridLayoutFrame()
{
super( “GridLayout Demo” );
gridLayout1 = new GridLayout( 2, 3, 5, 5 ); // 2 by 3; gaps of 5
gridLayout2 = new GridLayout( 3, 2 ); // 3 by 2; no gaps
container = getContentPane(); // get content pane
setLayout( gridLayout1 ); // set JFrame layout
buttons = new JButton[ names.length ]; // create array of JButtons

for ( int count = 0; count < names.length; count++ )
{
buttons[ count ] = new JButton( names[ count ] );
buttons[ count ].addActionListener( this ); // register listener
add( buttons[ count ] ); // add button to JFrame
} // end for
} // end GridLayoutFrame constructor

// handle button events by toggling between layouts
public void actionPerformed( ActionEvent event )
{
if ( toggle )
container.setLayout( gridLayout2 ); // set layout to second
else
container.setLayout( gridLayout1 ); // set layout to first

toggle = !toggle; // set toggle to opposite value
container.validate(); // re-lay out container
} // end method actionPerformed
} // end class GridLayoutFrame

import javax.swing.JFrame;

public class GridLayoutDemo
{
public static void main( String[] args )
{
GridLayoutFrame gridLayoutFrame = new GridLayoutFrame();
gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
gridLayoutFrame.setSize( 300, 200 ); // set frame size
gridLayoutFrame.setVisible( true ); // display frame
} // end main
} // end class GridLayoutDemo

ফ্রেম উইন্ডো

ফ্রেম উইন্ড্রো হল স্ট্যান্ডার্ড উইন্ডো যাতে টাইটেল্বার , মেনুবার, বর্ডার থাকে । Frame class এর দুটি method সচারচর ব্যাবহার করা হয়।
Frame()
Frame(String title)

এখানে একটি প্রোগ্রাম দেওয়া হল যার মাধ্যমে বিষয়টা দেখা যাক

import java.awt.Dimension;
import javax.swing.JFrame;

public class c1 extends JFrame{

public static  void main(String arg[]){
JFrame p=new JFrame();//ফ্রেম উইন্ড্রো
p.setSize(new Dimension(400,400));
p.setVisible(true);
p.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

Frame Window