安卓培训(java篇)第4天—面向对象
类的概念:类是一种抽象的概念,它为“对象服务”,类与对象相互依存;
对象的概念:真正做事的“人”;
封装的概念:显性和隐性 指的是方法或常量(字段);
如何创建对象:
语法:类名 对象名(变量名)=new 类名(是否带参);
意义:调用本类里面的成员变量和方法;
注意事项:空指针异常;
构造方法:
语法:权限+类名(是否带参){}//方法名必须跟类名一致;
何时调用:创建对象时调用该方法;
注意事项:任何一个类,都默认带有一个无参的构造方法,除非重写一个新的构造方法将其覆盖。
set()、get()方法:
备注:必须先有成员变量,使用这两个方法才有意义;
方法的重载:
语法:权限+(static)+返回值类型+方法名(是否带参){}
前提:必须在同一个类中;
作用:可以减少定义方法名的烦恼;
要求:有无返回值的方法,在同一个类中属于同一个方法;
方法的重载只跟形参的个数和类型有关,与其他无关;
构造方法也存在重载;
this关键字:
三大特点:
可以表示类的属性;
可以使用this调用本类的构造方法;
可以表示当前类的对象;
注意事项:不能放在static方法中;
static关键字:
特点:static只跟类有关,跟对象无关;
static本身就是一个“内部”类的一个对象(对象就是类本身);
注意事项:方法内不能再用static来进行修饰;
package、import
package申明一个自己的包名;(com/org开头,表示公共/私有)
import放在package里面,把在本类中引用到的类(JDK、自定义类)所在的包引过来;不同包才需引包;
如何看API:
第一:先看类所在包是否是想要的,看一下简介;
第二:看构造方法里面有几个重载的方法,作用分别是什么;
第三:看成员方法里面是否有所需的方法,直接用对象去调用;
API文档需要记的包名:
java.lang.*:在java中不需要导包;
java.awt.*:界面(GUI)类;图形用户界面
java.net.*:网络通信;
java.io.*:输入、输出流;
java.util.*:常用工具类;
Eclipse快捷键
ctrl+左键:进入java底层代码(API文档对应的类)
ctrl+o:查找相对应类的方法;
ctrl+1:逆向书写代码,从右到左;
继承:
概念:如果两个类存在继承关系,子类就可以拥有父类所有成员变量和方法;
语法:权限+class+子类+extends+父类{}
注意事项:java中只能单继承,但可以多重继承;
权限修饰符
注意事项:protected如果是在不同包,必须存在继承关系才能调用,否则无法调用;
多个类中,只能有一个public类;权限只修饰类、方法、成员变量;
重写:
条件:只存在继承中,方法头必须一模一样;
注意事项:父类的普通方法会被子类的重写方法所覆盖;
父类里面被重写的方法不能比子类里面的重写方法权限高;(除private)
静态的问题:
类的加载顺序:(静态块、静态变量)>静态方法>构造方法>成员变量>成员方法;
课后练习:
1、已知有一个游戏类Game,有一个play();它有四个子类,分别是C9、CF、CS、LOL
要求:四个子类都必须重写play()方法;
public class Game {
public void play(){
System.out.println("Game");
}
public static void main(String[] args){
Game[] g = new Game[4];
g[0] = new C9();
g[1] = new CF();
g[2] = new CS();
g[3] = new LOL();
for(int i=0;i<g.length;i++){
g[i].play();
}
}
}
class C9 extends Game {
public void play(){
System.out.println("C9");
}
}
class CF extends Game {
public void play(){
System.out.println("CF");
}
}
class CS extends Game {
public void play(){
System.out.println("CS");
}
}
class LOL extends Game {
public void play(){
System.out.println("LOL");
}
}
本文出自 “坤” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1574787
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。