Örnekler: 4. Bölüm

4. Bölüm – Operatörler

Bu bölümde Java’nın operatörleri (işlemciler) ele alınıyor. Tekli (unary) ve ikili (binary) operatörler ile bir tane örneği olan üçlü (ternary) “?:” operatörü ile, ilgili çevrim ve yükseltme örnekleri bu bölümdedir.

ArithmeticConversion.java: En temel dört işlem ve % operatöründeki aritmetik yükseltmeleri gösterir.

package org.javaturk.oop.ch04;

public class ArithmeticConversion {
	public static void main(String[] args) {
		byte b1 = 5;
		byte b2 = 8;
		// byte b3 = b1 * b2; // compile error: possible loss of precision
		byte b3 = (byte) (b1 * b2); // OK
		System.out.println(b3);

		int i = 12;
		double d = 8.524431;
//		 int k = i * d; // compile error: possible loss of precision
		int k = (int) (i * d);
		System.out.println(k);

		short s1 = 187;
		short s2 = 8;
		// short s3 = s1 % s2;
		int s3 = s1 % s2;
		System.out.println(s3);
		
		byte b4 = 8;
		byte b5 = (byte) -b4;
		//-b4;

		// Compound assignments
		i = 5;

		i = i + 3; // i şimdi 8
		i += 3; // i şimdi 11
		System.out.println(i);

		i -= 4; // i şimdi 7;
		System.out.println(i);
		i *= 2; // i şimdi 14
		i /= 7; // i şimdi 2
		System.out.println(i);
	}
}

 

UnaryOperators.java: Tekli operatörlerle ilgili örnektir.

package org.javaturk.oop.ch04;

public class UnaryOperators {

	public static void main(String args[]) {
		unaryPromotion();
		// autoIncDec();
		// weirdBehavior();
	}

	public static void weirdBehavior() {
		// For a good explanation:
		// http://skeletoncoder.blogspot.com/2006/09/java-tutorials-i-i.html and
		// http://forums.devx.com/archive/index.php/t-27360.html
		int i = 0;
		// i = i++ + 2;
		i = i++;
		System.out.println("i: " + i);

		// int j = i++;
		// System.out.println("i: " + i);
		// System.out.println("j: " + j);
		//
		// int k = i++;
		// System.out.println("i: " + i);
		// System.out.println("k: " + j);
	}

	public static void autoIncDec() {
		int i = 1;
		prt("i   : \t" + i);
		prt("++i : \t" + ++i); // Pre-increment
		prt("i++ : \t" + i++); // Post-increment
		prt("i   : \t" + i);
		prt("--i : \t" + --i); // Pre-decrement
		prt("i-- : \t" + i--); // Post-decrement
		prt("i   : \t" + i);
	}

	public static void unaryPromotion() {
		byte b1 = 18;
		short s1 = 44;
		byte b2 = ++b1; // OK. No need to implicitly cast
		short s2 = --s1; // OK. No need to implicitly cast
		System.out.println("b2: " + b2);
		System.out.println("s2: " + s2);

		// -b1; // compile error: not a statement
		// byte b3 = -b1; // compile error: possible loss of precision
		byte b3 = (byte) -b1;
		// byte b4 = +b2; // compile error: possible loss of precision

		long l = 5;
		l = -l;
		System.out.println(l);

		boolean isTrue = true;
		isTrue = !isTrue;
		// !isTrue; // compile error:
	}

	static void prt(String s) {
		System.out.println(s);
	}
}

 

RelationalOperators.java: Kıyaslama operatörleriyle ilgili örnektir.

package org.javaturk.oop.ch04;

import java.util.*;

public class RelationalOperators {

	public static void main(String[] args) {

		Random rand = new Random();
		int i = rand.nextInt() % 100;
		int j = rand.nextInt() % 100;

		prt("i = " + i);
		prt("j = " + j);
		prt("i > j is " + (i > j));
		prt("i < j is " + (i < j));
		prt("i >= j is " + (i >= j));
		prt("i <= j is " + (i <= j));
		prt("i == j is " + (i == j));
		prt("i != j is " + (i != j));

		boolean b1 = true;
		boolean b2 = false;
		if (b1 == b2)
			prt("The same");
		else
			prt("Different");
		
		if (b1)
			prt("true!");
		
		String s1 = new String("String");
		String s2 = new String("String");
//		s1 = s2;
		if (s1 == s2)
			prt("The same");
		else
			prt("Different");

	}

	static void prt(String s) {
		System.out.println(s);
	}
}

 

ConditionalOperators.java: Şart operatörleri örneğidir. Şart operatörleri daima mantıksal tipler üzerinde işlem yaparlar.

package org.javaturk.oop.ch04;

public class ConditionalOperators {

	public static void main(String args[]) {
		
		boolean b1 = true;
		boolean b2 = true;
		boolean b3 = b1 ^ b2;
//		System.out.println(b3);

		if ((getOne() == 7) && (getTwo() == 2)) {
			System.out.println("value1 is 1 AND value2 is 2");
		}
		
		if ((getOne() == 8) || (getTwo() == 1)) {
			System.out.println("value1 is 1 OR value2 is 1");
		}
		
		//Ternary operator
		int i = 8;
		int j = 11;
		int min = (i <= j) ? i : j;
		System.out.println(min);
		
		System.out.println(true ? "true" : "false" );
		System.out.println(false ? "true" : "false" );
		
//		String string1 = "I love Java";
//		String string2 = (string1 == "I love Java") ? string1 : "I love nothing";
		
//		String string2 = (string1.contains("Java".subSequence(0, 3))) ? string1 : "I love nothing";
//		System.out.println(string2);
////		string1 = "I love C# very much";
//		string2 = (string1.contains("Java".subSequence(0, 3))) ? string1 : "I love nothing";
//		System.out.println(string2);
		
		String string1 = "I love Java very much";
		String string2 = (string1.matches(".*Java.*")) ? string1 : "I love nothing";
		System.out.println(string2);
		
		if(string1.matches(".*Java.*"))
			string2 = string1;
		else
			string2 = "I love nothing";
		System.out.println(string2);
		
//		(i<j) ? System.out.println(i) : System.out.println(j); // Can't do this.
	}

	public static int getOne() {
		System.out.println("In getOne()");
		return 8;
	}

	public static int getTwo() {
		System.out.println("In getTwo()");
		return 9;
	}
}

 

BitwiseLogicalOperators.java: Bit seviyesinde çalışan mantıksal operatörler.

package org.javaturk.oop.ch04;

public class BitwiseLogicalOperators {

	public static void main(String[] args) {
		int i = 4;
		int j = 8;
		
		int k = i & j;
		System.out.println(k);
		
		k = i | j;
		System.out.println(k);
		
		k = i ^ j;
		System.out.println(k);
		
		long u = 6;
		long v = 2;
		long w = u & v;
		System.out.println(w);
		
		byte m = 6;
		byte n = 2;
		byte l = (byte) (m & n);
		System.out.println(l);
		
		System.out.println(~l);
	}
}

 

ShiftOperators.java: Kaydırma yapan operatörlerle ilgili örnektir.

package org.javaturk.oop.ch04;

public class ShiftOperators {
    
    public static void main(String[] args) {
        int i = 512;
        i = i >> 1;
        System.out.println(i);
        
        i = i >> 3;
        System.out.println(i);
        
        i = i << 5;
        System.out.println(i);
        
        i = i >>> 1;
        System.out.println(i);
        
        i = -3;
        i = i << 3;
        System.out.println(i);
        
        i = i << 5;
        System.out.println(i);
        
        i = i >>> 8;
        System.out.println(i);
        
        long l1 = 9;
        l1 = l1 >> 2;
        System.out.println(l1);
    }
}

 

OperatorPrecedence.java: Operatörler arasındaki önceliklerle ilgili örnektir.

package org.javaturk.oop.ch04;

public class OperatorPrecedence {

	public static void main(String[] args) {

		int a = 6;
		int b = 5;
		int c = 10;

		float rs = a + ++b * c / a * b;
		System.out.println("rs :" + rs);

		rs = a + (++b) * ((c / a) * b);
		System.out.println("rs :" + rs);

		a += b += c;
		System.out.println("a: " + a);

		int u = 3;
		// System.out.println("u:" + ++u+u--);
		System.out.println(++u + u--);
		System.out.println("u:" + u);

		int x = 10, y = 7, z = 3;
		System.out.println("x*y%z: " + x * y % z);
		System.out.println("x*y%z: " + x * (y % z));

		boolean b1 = false, b2 = true, b3 = true;
		boolean bool = b1 & b2 | b3;
		System.out.println("bool: " + bool);

		// The + operator is left associative
		System.out.println("Java" + 1 + 6);
		System.out.println(1 + 6 + "Java");
		System.out.println("1" + "6" + "Java");
		System.out.println('1' + '6' + "Java");
		System.out.println("Java" + (1 + 6));
		
		// Parameter evaluation
		String s = "Java";
		print(s, s = "Javaci", s);
	}

	static void print(String a, String b, String c) {
		System.out.println(a + " " + b + " " + c);
	}
}

 

Conversions.java: Bazı operatörlerdeki yükseltmeler ile ilgili örnektir.

package org.javaturk.oop.ch04;

public class Conversions {

	public static void main(String[] args) {
//		Unary conversions
		byte b = 3;
//		b = +b;		// Unary conversion
//		b = -b;		// Unary conversion
//		b = ~b;		// Unary conversion
		
//		Binary conversions
//		byte c = b >>> b;
		
	}
}

 

 

 

 

 

 

 

Bu yazı toplam 1986 defa görüntülenmiştir.

2 Comments

  1. Selcuk
    12 Ocak 2016 @ 00:40

    inanin cok iyi bir aciklama olmus, tessekur etmek istedim,

  2. Akin
    15 Ocak 2016 @ 21:01

    Teşekkür ederim, sevindim.

Leave a Reply

*

*