第三篇-面向对象(上)

1.面向对象三大特征:

封装、继承、多态

2.构造器为什么无返回值类型,但不可定义为void:

构造器相当于是有默认有返回值,返回值为当前对象
eg:Person person=new Person();

3.类不是具体的存在,实例才是具体的存在。类是抽象出来的。
4.栈内存里的引用变量并未真正存储对象的成员变量,对象的成员变量实际存放在堆内存中
5.static:

(1)没有使用static修饰的成员变量或方法都必须使用对象来调用
(2)使用static修饰的成员变量或方法可直接通过类调用
(3)静态成员不能访问非静态成员

6.this:在某个方法中把this作为返回值,this可代指当前对象,可使代码更简洁
7.方法:

(1)如果方法使用了static修饰,方法归属于类,否则归属于对象
(2)从表面上看,方法是可以被独立执行。实际上,如果被调方法是普通方法,则默认使用this,如果被调方法是用static修改,是使用类来调用
(3)方法参数的最后一个参数,可被定义为String...name这种类型,代表形参个数可变,可被当成一个数组形式处理。但一个方法中只允许有一个
(4)方法重载:同一个类中定义多个方法名相同,参数列表不同的方法
如果有一个重载方法是使用形参可变的形式(String...name),另一个是一个参数的方法,又想只传入一个参数并且调用第一个形参可变方法,那么传值时候使用test(new String[]{"hi"}),这种形式

8.以static修饰的是类变量,没有static修饰的是成员变量:

类变量的作用域与这个类的生存范围相同,当类创建就会存在,直到这个类被销毁
成员变量是实例被创建的时候开始存在,直到实例被销毁
总结:类变量随类的存在而存在;实例变量随实例的存在而存在
当需要调用类变量时,最好使用类.变量名的形式,而不使用实例来调用类变量,这样既可避免错误也提高了可读性

9.封装:

优点:
a.隐藏类的实现细节
b.限制不合理的访问
c.便于修改,提高代码可维护性
实现原则:
a.将对象的成员变量和实现细节隐藏起来,不允许外部直接访问
b.让方法暴露出来,让方法来控制对变量的访问和操作
即:把该隐藏的隐藏起来,把该暴露的暴露出来

10.假如一个类中一个方法,完全包含另一个方法中所有代码,调用方法可以为:
private void test1(int name,int age){
   this.name=name;
   this.age=age;
}

private void test2(){
    this.test1("小明",7);
    //下面是需要执行的其他代码
}
11.extends可被称为继承,扩展更容易理解
12.方法重写(两同两小一大的原则)

两同:方法名相同、参数列表相同
两小:子类方法返回值类型比父类小或相等、子类方法抛出异常比父类小或相等
一大:子类方法访问权限应比父类大或相等
a.当子类想调用和父类同名的方法或变量,可通过super.fly()或super.name来调用
b.子类定义的实例变量若和父类的同名,并不会完全覆盖父类的实例变量,他还是会在子类创建的时候,分配出对应的空间。如:(父类类名)子类声明的名字.变量名形式,向上转换成父类的变量名->(BasicParent)child.name
注意事项:
(1)子类或父类的方法要么都是类方法,要么都是实例方法,需保持一致
(2)当子类覆盖父类方法时,子类将无法访问父类方法。但可以调用父类方法,可以使用super(方法为实例方法,super.fly())或类名(类方法 Bird.fly())来调用父类被覆盖的方法,
(3)若父类方法是private修饰,子类写的方法符合两同两小一大原理,那也不是覆盖,只是在子类重新定义了一个方法
方法重载overload,方法重写override:
overload:同一类中多个方法之间发生
override:子类和父类之间的方法

13.多态:
public class BaseParentBean {
   public String name = "父类";

   public void like() {
       Log.e("demo", "watch tv");
   }
}
public class ChildBean extends BaseParentBean{
    public String name = "子类";

    public void like(){
        Log.e("demo", "play game");
    }

    private void eat(){
        Log.e("demo", "hamburger");

    }
}
        BaseParentBean bean=new ChildBean();
        Log.e("实例变量",bean.name);
        bean.like();

打印发现,bean.name输出“父类”,bean.like输出play game
引用类型有两个类型:编译时类型( BaseParentBean)、运行时类型(ChildBean),此时就有多态的产生。由上面demo可知,方法之间存在多态,子类会覆盖父类。对象的实例变量不具备多态性。
<强制类型转换>:在转换之间可使用instanceof判断是否可以转换成功
(1)基本类型之间的强制类型转换只能在数值类型之间进行,数值类型包括整数、浮点型、字符型
(2)引用类型之间的强制类型转换发生在具有继承关系的两个类型之间,如果是两个没有任何继承关系的类型,不能发生转换。如果试图把一个父类类型转换成子类类型,则这个对象必须实际上是子类实例才行(即编译时为父类类型,运行时为子类类型)
<instanceof>:用于判断前面的对象是否是后面的类、或者其子类、实现类的实例。如果是,返回true
(1)前面的操作数的编译时类型要么与后面一致,要么具有继承关系
(2)在强制类型转换时,首先判断前一个对象是否是后一个对象的实例,即:
a instanceof b ,a是b的实例,b是a的抽象类

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,302评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,563评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,433评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,628评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,467评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,354评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,777评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,419评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,725评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,768评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,543评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,387评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,794评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,032评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,305评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,741评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,946评论 2 336

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,714评论 2 9
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 454评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,514评论 18 399
  • 你可以重新教我做孩子吗 教我如何重新光脚走在沙滩上 教我那些大人已经忘记的事情吧 当我蹲起来和你一样高 才发现眼里...
    小乐妹阅读 537评论 0 2
  • “唉…我喜欢的那个人啊…”。今天去签租房合同,不知怎么的,说完这句话,欲言又止。 什么时候,说起你,突然变成叹息了...
    桨小嗯阅读 325评论 0 0