Non-static Inner Classes

Kategori: Java , 11 Temmuz 2019 , JanFranco


Bir sınıfın içinde bir sınıf ve hatta sınıfın içindeki sınıfın da içinde bir sınıf tanımlayabiliriz. :) Anlaşılması için örnek görelim:

Sınıfları açmak ne kadar kolay olsa da, obje üretimi kafa karıştırıcı olabilir. Görelim, bir matematik sınıfı açalım:


import java.util.Scanner;

public class Mathematic {

	private double PI = Math.PI;
	
	public class Factorial{
		
		public void factorial() {
		
			Scanner scanner = new Scanner(System.in);
			int mult = 1, num;
			num = scanner.nextInt();
			for(int i=num; i>0; i--) {
				mult *= i;
			}
			System.out.println(num + "!= " + mult);
			
		}
		
	}
	
	public class Prime{
		
		public boolean check_prime(int num) {
			
			int i = 2;
			
			while(i < num) {
				if(num % 2 == 0) {
					return false;
				}
				i++;
			}
			
			return true;
			
		}
		
	}
	
	public class Area{
		
		public class Circle{
			
			public void calculate_area(int radius) {
				
				System.out.println("Area of the circle = " + (2 * PI * radius));
				
			}
			
		}
		
	}
	
}
Şimdi bu sınıflardan objeler üretelim ve methodları kullanalım:

import java.util.Scanner;

public class Main_class {

	public static void main(String args[]) {
		
		Mathematic.Factorial factorial = new Mathematic().new Factorial();
		Mathematic.Prime prime = new Mathematic().new Prime();
		Mathematic.Area.Circle area_circle = new Mathematic().new Area().new Circle();
		
		factorial.factorial();
		Scanner scanner = new Scanner(System.in);
		System.out.println("r = ");
		int radius = scanner.nextInt();
		area_circle.calculate_area(radius);
		
	}
	
}
>>

12
12!= 479001600
r = 
12
Area of the circle = 75.39822368615503


Sonraki Yazı: Static Inner Classes
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın