从现在开始好好搞java,虽然上学期已经学了,但是我觉得自己操作还是少了点,所以就编编,谢谢日志记录吧。
1.成员变隐藏:
class People{ public double x; public void setX(double x){ this.x=x; } public double getDoubleX(){ return x; } } class Student extends People{ int x; public int getX(){ //x=20.56; //此时x的类型是int型的 return x; } } public class Example5_3 { /** * @param args */ public static void main(String[] args) { Student stu=new Student(); stu.x=98; System.out.println("对象stu的值是:"+stu.getX()); //stu.x=98.98 非法 stu.setX(98.98); //此时x的类型是double型的 double m=stu.getDoubleX(); System.out.println("对象stu隐藏的x的值是:"+m); } }
2.super关建词:
Sum.java
1 public class Sum { 2 int n; 3 public double f(){ 4 double sum=0; 5 for(int i=1;i<=n;i++){ 6 sum=sum+i; 7 } 8 return sum; 9 } 10 11 }
Average.java
1 public class Average extends Sum{ 2 double n; //子类继承的int型变量n被隐藏 3 public double f(){ 4 double c; 5 super.n=(int)n; //double型变量n做int型转换,结果赋值给隐藏的int型变量n。 6 c=super.f(); 7 return c+n; 8 } 9 public double g(){ 10 double c; 11 c=super.f(); 12 return c-n; 13 } 14 }
main
1 public class Example5_7 { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 Average aver=new Average(); 8 aver.n=100.5678; 9 double result1=aver.f(); 10 double result2=aver.g(); 11 System.out.println("reslut1="+result1); 12 System.out.println("result2="+result2); 13 } 14 15 }
结果:
3.final关键字
final
1 //final方法只能被老老实实继承,不许做任何篡改 2 //成员变量或者局部变量被修饰为final的,就是常量,声明常量时必须指定该常量的值,而且不能再发生变化。 3 class A{ 4 //final double PI; 非法,没有给常量指定值 5 final double PI=3.1415926; 6 public double getArea(final double r){ 7 return PI*r*r; 8 } 9 10 public final void speak(){ 11 System.out.println("您好,How's everything here?"); 12 } 13 } 14 15 class B extends A{ 16 /* 非法,不能重写speak方法 17 * public void speak(){ 18 System.out.println("您好。"); 19 }*/ 20 } 21 public class Example5_8 { 22 23 /** 24 * @param args 25 */ 26 public static void main(String[] args) { 27 // TODO Auto-generated method stub 28 B b=new B(); 29 System.out.println("面积:"+b.getArea(100)); 30 b.speak(); 31 } 32 33 }