(面向对象第二张,我们已经学习过半,所学内容也都复杂起来。如有小伙伴发现错误,请在评论区留言让我即使更正,不要误导别人)

8.static静态

使用static去访问变量时,推荐使用类名进行访问。
特点:
1.数据共享,使用static,每个对象都可以接收
2.属于类,并不属于对象
3.优先于对象产生的

public class person{String name;static String country = "大清";String address;public Person(String name,String country,String address){this.name = name;this.country = country;this.address = address;}public static void main(String[] args){Person p1 = new Person("赵铁柱","大清","八大胡同");Person p2 = new Person("李小花","大清","朝阳门");//大清亡了//   p1.country = "民国";// p2.country = "民国";//用类名访问Person.country = "民国";//使用static静态}}

通用构造器,
静态构造器相当于两个大括号
创建对象的过程(简单):过程
1.静态构造器
2.通用构造器
3.构造方法—>创建对象时用的

  static {System.out.println("静态构造器");//先执行}{System.out.println("这里是通用构造器");}public oopDay05(){System.out.println("构造方法");}

  • 由于创建对象的过程是在静态内容加载完成后,在静态方法和静态块里不能使用this
  • 静态的内容使用类名访问
public class Test{public static void pen(){System.out.println("还我钱");}public static void mian(String[] args){pen();//静态方法里调用静态的东西是可以的Test.pen();//使用类名去访问静态方法}
}

9.包和导包

  • 包:其实本质上是文件夹。

  • 在代码中需要写package包名;
    导包:import+包+类;

  • 不需要导包:
    1.在自己包里
    2.java.long包下的所有内容都不需要导包
    String
    System.out.println()

//把entity包下的Person类导入到当前文件
package com.scy.www;//包的声明,表示当前类,从属于en
import com.scy.www;

10.访问权限

1.public 公共的 所有人都可以访问
2.default 包访问权限在自己包内可以随意访问
3.private 私有的
日常生活中用的最多的是public和private

package com.scy.cn
public class Person{public String pub = "public";private String pri = ""private; String def = "default";public static void main(String[] args){Person p = new Person();System.out.println(p.pub);//公共的System.out.println(p.pri);//私有的System.out.println(p.def);//包了的//测试方法1.在同类中输出2.在同包不同类中输出3.在不同包中输出}}

11._getter和setter

  • 为啥要用?工资
  • 成员变量一般使用private来生声明,保护成员变量不被胡乱赋值
  • setter主要是给成员变量赋值,做一定的保护
  • getter从成员变量中获取数值
  • 快速生成
    空白位置-> 右键->generate->getter and setter->选中快速生成
package com.scy.cn;public class Persson {//成员变量是私有的private String name;private int age;//setterpublic void setName(String name) {this.name = name;}//有效的保护我们的成员变量不被胡乱的赋值public void setAge(int age) {if (age<0){this.age = 0;}else{this.age=age;}this.age = age;}//getterpublic String getName() {return name;}public int getAge() {return age;}public void chi(){System.out.println(this.name+"在吃东西");}
}
package com.scy.cn;public class Test {public static void main(String[] args) {Persson p = new Persson();p.setName("周润发");p.setAge(12);//查看这个人的名字和年龄p.chi();System.out.println(p.getName());}
}

12._继承

继承:子类可以自动拥有父类中除了私有内容外的其他所有内容。
当出现x是一种y的时候,x就可以继承y
黑熊怪是一种妖怪
public class 类 extends 父类{
}
作用:简化代码开发
相当于子类对父类的扩展

package com.oop.jicheng.D1;public class YaoGuai {String name;private void paSi(){System.out.println("妖怪都怕死");}public void chiRen(){System.out.println("妖怪会吃人");}
}
package com.oop.jicheng.D1;public class HeiXiongGuai extends YaoGuai {//子类对父类进行了扩展public void tou(){System.out.println("黑熊怪偷袈裟");}
}
package com.oop.jicheng.D1;public class Test {public static void main(String[] args) {HeiXiongGuai hx = new HeiXiongGuai();hx.chiRen();hx.name = "大黑熊";System.out.println(hx.name);hx.tou();//hx.paSi();//私有的内容是不能继承的}
}

13._super关键字

this访问本类对象,super访问父类对象
用super和this来区分父类和子类中重名的内容。

1.super可以获取父类中的内容
2.可以调用父类中的构造方法,必须写在子类构造方法的第一行,如果父类的构造是无参数的,可以不写,如果父类没有无参数的构造,必须要写super

package com.oop.ChongXie;
//super关键字
public class oopDay12 {String name = "英雄";public oopDay12(String name){System.out.println("我是父类的构造方法");this.name = name;}}
、package com.oop.ChongXie;
//super关键字
public class oopDay13 extends oopDay12 {String name = "孙大圣";public  oopDay13(){super("武大郎");//还原语句,在子类构造方法的第一句,默认调用父类的构造方法System.out.println("我是子类构造方法");}public void chi(){System.out.println(super.name);System.out.println(this.name+"吃桃子");//子类}public static void main(String[] args) {oopDay13 s = new oopDay13();s.chi();}}

14.方法的重写

重写:子类对父类中提供的方法进行重新定义
语法:子类和父类中的方法声明完全一致
重写又被称为方法的覆盖

package com.oop.ChongXie;
//父类
//重写public class LiYuan {public void LiYuan(){System.out.println("我要创建一个帝国");}
}
package com.oop.ChongXie;
public class LiShiMin extends LiYuan {//子类中的方法必须和父类中的一致public void LiYuan(){//方法的重写//半盖super.LiYuan();//super可以调用父类中被覆盖的方法System.out.println("我也想创建一个帝国" );}public static void main(String[] args) {LiShiMin lsm = new LiShiMin();lsm.LiYuan ();}
}

15.多态

多态:同一个对象拥有多种属性
作用:把不同的数据类型进行统一
知识点:
1.把子类的对象赋值给父类的变量-》向上转型
缺点:屏蔽掉子类中特有的方法
2.把父类的变量转化回子类的变量-》向下转型
向下转型有可能有风险.java要求必须要写强制类型转换
(转换之后的数据类型)变量

package com.oop.DuoTai;
//多态
//猫是一种动物--继承关系
public class Cat extends DongWu {public void eat(){System.out.println("猫吃鱼");}public void zhua(){System.out.println("猫喜欢抓老鼠");}}
package com.oop.DuoTai;public class Dog extends DongWu{public void eat(){System.out.println("狗吃骨头");}
}
package com.oop.DuoTai;public class DaXiang extends DongWu {public void eat(){System.out.println("大象喝水");}
}
package com.oop.DuoTai;public class person {public void feed(DongWu dw){dw.eat();}
//    public void feedCat(Cat c){//        c.eat();
//    }
//    public void feedDog(Dog d){//        d.eat();
//    }
//    public void feedDaXiang(DaXiang dx){//        dx.eat();
//    }
}
package com.oop.DuoTai;public class DongWu {public  void eat(){System.out.println("动物在吃");}}
package com.oop.DuoTai;public class Test {public static void main(String[] args) {//        Cat c = new Cat();
//        Dog d = new Dog();
//        DaXiang dx = new DaXiang();
//        person p = new person();
//        p.feedCat(c);
//        p.feedDog(d);
//        p.feedDaXiang(dx);// Cat c = new Cat();创建一只猫DongWu dw1 = new Cat();DongWu dw2 = new DaXiang();DongWu dw3 = new Dog();person p = new person();p.feed(dw1);p.feed(dw2);p.feed(dw3);//向下转型Cat cc = (Cat)dw1;cc.zhua();}}

小练习:

package lianxi;public class Game {public void start(){System.out.println("开机");}public void play(){System.out.println("打游戏");}public void end(){System.out.println("关机");}
}
class DNF extends Game{public void play(){System.out.println("刷刷刷,刷Bass");}
}
class LOL extends Game{public void play(){System.out.println("云顶之弈下棋" );}
}
class CS extends Game{public void play(){System.out.println("一对一,对狙");}
}
class Player {public void happy(Game game){game.start();//一定是父类的方法game.play();//不一定game.end();//一定是父类的方法System.out.println("玩的真爽");}}
class Cllent {public static void main(String[] args) {Game game1 = new LOL();Game game2= new DNF();Game game3 = new CS();Player p = new Player();p.happy(game1);p.happy(game2);p.happy(game3);}
}

java面向对象知识点02相关推荐

  1. java面向对象知识点整理--用前人智慧,为后人铺路

    自己学习Java面向对象时对知识点的整理总结,主要包括:一些关键字.权限修饰符的使用.重载.构造器.代码块.内部类.封装.继承.多态.抽象.javabean.单元测试.包装类Object类.设计模式的 ...

  2. 杨校老师课堂之Java面向对象知识点整理集锦

    目录 第一部分 Java面向对象 1.开发环境搭建及开发工具eclipse使用 2.类和对象 3. 成员变量和局部变量区别 4. 数据类型 5.构造函数 6.函数 7. 成员变量的初始化 8. thi ...

  3. Java面向对象知识点总结(全)

    1.封装 定义 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联系. 原则 ...

  4. Java面向对象知识点精华

  5. Java面向对象知识点小结

    再小的帆也能够远航

  6. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  7. JAVA 面向对象和集合知识点总结

    转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46481759  在Android编程或者面试中经常会遇到JAVA 面向对象和集合的 ...

  8. ⑦Java SE知识点回顾与小结(面向对象)

    Java SE 面向对象 一.面向对象的优点: ​ 1)面向对象的思维方式更贴近于现实生活的思维方式 ​ 2)面向对象思维方式更体现于管理者,面向过程体现于执行者 ​ 3)可以将复杂的问题简单化 二. ...

  9. Java面向对象(知识点整理)

    文章目录 面向对象 类与对象 匿名对象 创建对象的内存分析 栈(stack) 堆(heap) 方法区 PC寄存器 本地方法栈 内部类 成员内部类 局部内部类 匿名内部类 静态内部类 包装类 拆箱和装箱 ...

最新文章

  1. 安防AI芯片“战国时代” 谁能稳坐钓鱼台?
  2. POJ 1989 贪心
  3. C++用数组和链表分别实现Stack
  4. VS2010 ASP.NET MVC4 安装失败问题
  5. java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...
  6. 从无到有算法养成篇-双向链表与双向循环链表
  7. bash: vim: command not found
  8. Applied Functional Analysis(Applications to Mathematical Physics ) E.Zeidler
  9. 当常规的算法都山穷水尽之后,你可以试试python中的SMOTE算法
  10. iisS7 配置SSL 绑定主机头实现多站点访问
  11. 一款“灵动”的滑动按钮
  12. 基于框架的全局配置模型
  13. 8.BLE---错误码
  14. 人工智能的高层建筑取决于数据基础设施
  15. HTML和CSS实现京东首页(html和css详解)
  16. igl或者libigl库的使用
  17. matlab绘制心形函数
  18. 昆石VOS2009/VOS3000 2.1.6.00 操作指南
  19. 计算机app无法删除,电脑软件卸载不掉怎么办?软件删除不掉解决技巧
  20. 火雷噬嗑 (易經大意 韓長庚)

热门文章

  1. Web基础:网络协议,HTTP
  2. Windows家庭版开启远程连接
  3. WinForm DataGridView制作表格
  4. 微博掘金旅游大数据,商业化的好选择?
  5. c/c++单链表面试题—链表带环问题
  6. Word转PDF:简单步骤,轻松完成!推荐两个实现的方法
  7. ArcGIS基础: 高级编辑器下的整形要素、镜像、概化、平滑和缓冲区工具
  8. PC上设置默认网关的意义
  9. python搭建webapi_Python 版本--金蝶云星空新版WebAPI SDK--新手快速入门指南
  10. Linux 安全设置之yum源与账户安全