java总结-第六章

第六章
java类设计
extends类的继承
object类是所有java类的最高层父类
java只支持单继承 不允许多重继承
一个子类只有一个父类 一个父类可用有多个子类
public default protected public
方法重写
在子类可用根据需要对父类继承的方法进行改造--方法的重写
重写方法必须和被重写方法具有相同的方法名称 参数列表 返回值类型 重写方法不能使用比被重写方法更严格的访问权限 重写方法不能引起比父类更多的异常
方法声明必须在主函数外
java使用super来引用父类的成分
可访问父类的属性 成员方法 父类的构造方法 追溯到直接父类
this本类 super父类
多态
在java中 子类的对象可以替代父类的对象使用
一个对象只能有一种确定的数据类型
person p=new student();
object o=new person();
o=new student();
前面父类 后面子类
多态性
一个引用类型变量如果声明为父类的类型 但实际引用的是子类对象 那么该变量就不能再访问子类中新添加的属性和方法
虚方法调用
person a=new student();
a.getInfo();
instanceof操作符
public class person extends object{};
public class student extends person{};
public class graduate extends person{};

public void method(person e)  //实例化的e
{
if(e instanceof student)
{
}
else if(e instanceof garduate)
{
}
else {
//处理person类对象
}
}
对java对象的强制类型转换称为造型
从子类到父类的类型转换可以自动进行
从父类到子类的类型转换必须通过造型(强制类型转换)实现
无继承关系的引用类型间转换时非法的
public class Test{//Person及Student类的定义已有
public void method(Person e) { //实例化的e
System.out.pritnln(e.getschool()); //非法 不能用student的变量
if(e intstanceof Student){
Student me = (Student)e;//把person类的e强制转换为student类
System.out.pritnln(me.getschool());//这样可以调用了
}
}
方法名重载
在一个类中可以定义多个同名方法--方法名重载
重载方法的参数列表必须不同
重载方法的返回值类型可以相同 也可以不同
public void printl(int i){};
public void printl(float i){};
public int printl(int i){};
构造方法重载的参数列表必须不同
可以再构造方法的第一行使用this关键字调用其他重载的构造方法
public class person
{
public person(int a){};
public person(int a ,int b){};
}     

public class Person
{private String name;
private intage;
private Date birthDate;
public Person(String name, intage, Date d)
{this.name = name;
this.age = age;
this.birthDate= d;
}

public Person(String name, int age)
{
this(name, age, null);
}
public Person(String name, Date d)
{
this(name, 30, d);
}
public Person(String name)
{this(name, 30);}   //重载时候this就这样用
}
构造方法不能被继承
子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法
java构造方法来源
系统默认无参构造
显式定义一个或多个构造方法
在子类调用父类的构造方法使用super()来调用父类的构造方法
public class person
{
public int a;
public int b;

public person(int a,int b){ this.a=a; this.b=bl;}
public person(int a){this(a);}

}
public class student extends person{
public date m;
public student(int a,int b,date m)
{
super(a,b);
this.m=m;

}
}

object类是所有java类的根父类
如果类未声明父类 默认父类为object类
==操作符和equals方法区别
equals()方法只能比较引用类型
对类File String  Date以及封装类 是比较类型及内容
不考虑引用是否是同一个实例
==可以比较引用类型和基本类型
符号两边数据类型必须一致
int x = 10;
int y = 10;
person a = new person(10);
person b = new person(10);

if (x == y) {//等于
 System.out.println("dengyu");
} else {
 System.out.println("budengyu");
}
if (a == b) {//不等于
 System.out.println("dengyu");
} else {
 System.out.println("budengyu");
}
if (a.equals(b)) {//不等于
 System.out.println("dengyu");
}else {System.out.println("budengyu");}

}
toString()方法是object类中定义 其返回值是String类型
基本类型数据转换为String类型时 调用了对应封装类的toString()方法
八种基本类型引用类型--封装类
基本数据类型    封装类
boolean        Boolean
byte           Byte
short          Short
int           Integer
long         Long
char         Character
float        Float
double       Double
封装类用法
int i=500;
Integer t=new Integer(i);
int j=t.intValue();
String s=t.toString();
String s1=Integer.toString(314);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值