Java继承

今天学习了Java的另一个特征——继承,在分享新知识的同时,我们先复习前面所学习的知识。

面向对象编程语言的基本特征是什么?

1,封装性:
封装性是指将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类。封装隐藏了对象的具体实现,当要操纵对象时,只需调用其中的方法,而不用管方法的具体实现。
2,继承性:
一个类继承另一个类,继承者可以获得被继承类的所有方法和属性,并且可以根据实际的需要添加新的方法或者对被继承类中的方法
进行覆写,被继承者称为父类或者超类,继承者称为子类或导出类,继承提了程序代码的可重用性,java中一个子类只能继承一个父类,object类是所有类的最终父类。
3,多态性:
多态性是指不同的对象对同一事物而做出的相同行为,一个类a可以指向其自身类和其导出类,一个接口可以指向其接口实现类,在方法参数中,使用多态可以提高参数的灵活性。
同时还有一个抽象,这个我们不需要多作解释。

设计一个包含多个构造器的类,并分别用这些构造函数实例化对象

构造器方法不能有返回值类型的声明,即使void都不可以

public void A(){}不是构造器,是合法的普通方法,可以直接调用 new A().A()

```public class A{ 
public A(){} //new A();//允许构造器方法重载---方法名称相同,参数不同
  public A(int k){} //new A(123)
  public A(String k){} //new A("yan")
   public A(int k1,String k2){} //new A(123,"yan")
    public A(String k1,int k2){} //new A("yan",123) }

Java语言中,成员变量与局部变量有什么区别

成员变量:
①成员变量定义在类中,在整个类中都可以被访问。
②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
③成员变量有默认初始化值。
局部变量:
①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
③局部变量没有默认初始化值

面向过程程序设计的核心

程序核心是算法 解释算法 面向过程:自顶向下、逐步求精、模块化

面向对象技术中的对象三个基本属性

状态 行为 标识
使用一个对象前,必须声明并初始它 , 使用临时变量要求先定义后使用,先赋值后使用, 定义引用类型的变量默认值为null

编写一个Cal1类实现加减两种运算,然后编写另一个Cal2类实现 乘除两种运算

public class Cal1{
 private int n1,n2; //省略了get/set方法 
 public long add(){//不会出现空指针问题,因为n1和n2是简单类型,默认值为0
  return 0L+n1+n2; }
  public long sub(){
   return 0L+n1-n2; 
   }
    }
    //Cal1 c1=new Cal1(); c1.setN1(100); c1.setN2(200); long res=c1.add();
    	 public class Cal2 extends Cal1{
    	  public double mul(){ return 1.*getN1()*getN2();
    	   }public double div(){ if(getN2()!=0) 
    	   return 1.*getN1()/getN2();//如果没有1.这个操作,则是整除计算
    	    else return Double.POSITIVE_INFINITY; //正负无穷大之分
    	     } 
    	    }

建立3个类:居民、成人、官员。居民包含身份证号、姓名、出生 日期,而成人继承自居民,多包含学历、职业两项数据,官员则 继承自成人,多包含党派、职务两项数据。要求每个类的字段都 以属性的方式对外提供数据输入输出的功能

public class Resident{
private String idCard;//18位并且可能有字符,数值型数据的比较效率高于字符串
private String name;
private Date birth; //java.util.Date是系统提供的日期类型
//get/set方法....
public void setIdCard(String idCard) { //针对传入的身份证号码进行合法性验证,如果数据不合法应该通过异常告知调用处或者赋默认值	
if(idCard!=null && idCard.trim().length()==18) 
this.idCard = idCard;	
else
throw new RuntimeException("身份证号码不合法!");
 }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值