java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)作者:王可利(Star·星星)
instanceof 关键字
作用:
1.用来判断某个对象是否属于某一个类。
2.instanceof 关键字使用的前提:对象指定的类有继承关系或者实现关系
3.强制类型转换会用到 instanceof 关键字。
如:
Student s = (Student)new Person();//要想这么做,必须满足Student继承Person。
boolean res = s instanceof Person
if( res){
Student s = (Student)new Person();
}
代码如下:
1 package study; 2 3 class Person{ 4 String name; 5 public Person(String name) { 6 this.name = name; 7 } 8 public Person() {} 9 }10 11 class Student extends Person{12 13 }14 15 public class star {16 public static void main(String[] args) {17 Person star = new Person("星星"); 18 boolean result1 = star instanceof Person;19 System.out.println(result1);//ture20 21 Student s = new Student();//默认父类的无参构造22 23 boolean result2 = s instanceof Person;24 System.out.println(result2);//ture25 }26 27 }
final 关键字(修饰符,最终的)
1.如果用一个final 关键字修饰一个基本数据类型变量,改变了就不能重新赋值。第一次的结果为最终结果。
2.如果用final修饰引用数据类型,引用数据类型的变量就不能再赋值。
如:这样是错的。
final Yuan yuan = new Yuan(10);
yuan = new Yuan(100);//无法重新赋值
3.如果final修饰一个方法,方法就不能被重写。
4.如果final修饰一个类,那么这个类就不能被继承。
5.final 修饰的变量必须要初始化,不然会报错。
1 package study; 2 3 class Yuan{ 4 int r; 5 final double pai = 3.14;//应该是一个不变的量,不然下面参数 给了 不是3.14 就会被修改。类似常量 6 7 public Yuan(int r/*,double pai*/) { 8 this.r = r; 9 /* this.pai = pai;*/10 }11 12 public void area(){13 System.out.println("圆的面积是"+r*r*pai);14 }15 }16 17 public class star {18 public static void main(String[] args) {19 Yuan yuan = new Yuan(10/*,3.14*/);//不给修饰会被修改20 yuan.area();21 }22 }
如何用final表示常量:
格式:
public final static 基本数据类型 变量名
值的传递
基本数据类型之间赋值,实际是将变量的值赋给另外一个变量。
参数如果是引用类型,传递参数是参数的引用类型数据的地址。
引用类型:类、接口、数组
1 package study; 2 3 public class star { 4 public static void main(String[] args) { 5 6 //需求:定义两个整形的数,用一个方法来交换两个数 7 int a = 10; 8 int b = 20; 9 change(a, b);10 System.out.println("a = "+a+",b = "+b);//10.2011 12 //需求:定义一个数组,交换两个数的位置13 int[] arr = {10,20};14 changeArr(arr);//20,1015 System.out.println("arr[0] = "+arr[0]+"arr[1] = "+arr[1]); 16 }17 18 public static void change(int a,int b){19 int temp = a;20 a = b;21 b = temp;22 }23 public static void changeArr(int[] arr){24 int temp = arr[0];25 arr[1] = arr[0];26 arr[0] = temp;27 }28 }