这周计划是看完java的面向对象。
1.异或运算符
不同为真,相同为假
性质:结合性,交换性,自反性
一个方法:不借助第三个变量实现变量的交换
a^=b;//a=a^b
b^=a;//b=b^a^b=a
a^=b;//a=a^b^a=b
2.for each语句
适用于数组和集合,提高一定安全性(遍历,不会越界)和可读性
语法:
for(对象类型 对象名称 :对象的数组或集合名称){ //前者相当于后者的元素
循环体语句;
}
举例
int score[]=new int [] {87,23,36}
for( int i : score){
System.out.print(i);
}
面向对象编程
一、继承和多态
1.java的构造方法
在一个构造方法中调用同一个类中的其他构造方法前面不要写类名,而要写成this,而且通过this调用的构造方法必须写在第一行。
2.继承与父类
继承:extend
父类:super
在子类的构造方法中,首先需要在第一行调用父类的构造函数——对super的调用必须是构造函数中的第一个语句,这个限制也同时使我们不能在一个构造函数中同时使用super和this两个关键字。
若不调用,除非父类没有有参构造函数。
语法格式:
super();
super(参数列表);
3.重载和覆盖
重载:同一个类,参数属性不完全相同,返回类型必须完全相同
覆盖:子类父类,参数属性没有要求,返回类型必须相同,在父类中不能为静态类型
4.调用对象方法时的搜索方向是 从子类向父类搜索,若方法子类未重定义或不满足条件,java会执行父类的方法 //如出现传参不满足子类,导致子类方法实现父类方法
5.强制类型转换
转换的时候记得给子类类型加括号 //用点号运算符的话,考虑其优先级
强制类型转换不是随便使用,如果进行强制转换的对象本不属于要转换的目的类型或是他的子类对象,java在运行时会出错
6.使用instanceof判断是否需要类型转换
public static method(Primary student)
{
if(student instanceof Undergraduate)
{
((Undergraduate)student).gotoschool();
}
return;
}
7.进行类型转换的必要性
这是为了使方法具有一般性,如果写成一个父类作参数,它的所有子类都可以都可以用作这个方法的参数,在方法中调用时,不但保证了接口方法的一致,而且还可以调用到子类中覆盖的方法,便于java程序的维护——毕竟父类参数适用范围更广
8.方法返回数组
数组类型 [] 方法名称(参数类型1 参数1)
9.嵌套类
-将类的定义挪到主类内部时,需要在他的类名前面加上static关键字,因为java主程序是一个静态方法,静态方法不能调用动态内容。
-外部类可以不顾权限的访问内部类,但其访问需指明访问对象,但内部类访问外部类则可以直接访问,因为一个外部类可以有多个内部类,一个内部类只有一个外部类。
-只有公共成员的内部类的公共成员才能够直接从外面访问到它的属性和方法。
10.抽象类的方法定义与普通方法的区别
-访问权限必须是public或protected
-在方法返回类型前面加上abstract修饰符,声明是一个抽象方法
-参数列表的小括号结束后直接加上分号结束声明
11.接口
-接口中只能定义常量和抽象方法(加关键字abstract),抽象方法不能只能是public和默认权限,不可以是protected和private(与抽象类的方法定义权限区分)
-java中类不可以多继承,但接口可以多继承,通过接口的多重继承可以达到类多继承的目的,只不过需要依次实现
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)