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

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. html5游戏生态,白鹭引擎发起共建HTML5游戏生态访谈!
  2. 增强的Internet域内网关路由协议
  3. MODE —— 输入一个数字,求从1加到该数的和(知识点:for循环嵌套while循环)
  4. ABP官方文档翻译 0.0 ABP官方文档翻译目录
  5. css制作漂亮彩带导航条菜单
  6. 虚拟机安装Ubuntu过程记录
  7. Android插件化开发基础之Java反射机制研究
  8. Linux socket编程,对套接字进行封装
  9. 关于docker的几个问题
  10. 蚂蚁森林上线三周年,5亿人“手机种树”1.22亿棵...
  11. day1 -- Python变量、注释、格式化输出字符串、input、if、while、for
  12. [转]Django REST framework 简介与中文教程
  13. matlab spearman秩相关系数,matlab统计分析与应用_基于copula函数的蒙特卡洛模拟计算var matlab-其它文档类资源...
  14. iOS 11种键盘布局总结
  15. 威步百科 | Blurry Box
  16. LAD-lasso和线性规划算法
  17. 卷积层网络CNN初学笔记(简单代码)
  18. 项目三:爬取视频磁力链接
  19. 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】
  20. Oracle数据库注入-墨者学院(SQL手工注入漏洞测试(Oracle数据库))

热门文章

  1. 知乎热榜:如何看待 2021 年秋招算法岗灰飞烟灭?
  2. HTML网页打包成EXE可执行文件
  3. 智能配置运维系统开发工具链
  4. 免费 | 通知 ∣ 8月6-9日 ∣ 第十届分子生药学暑期研讨会线上会议日程和参会链接...
  5. 六级(2021/6-1) Text1
  6. python pip安装selenium_python+selenium安装
  7. vue中key的作用及案例
  8. 记一次inner join sql优化
  9. Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
  10. Python引入包错误:AttributeError: module 'w6.pack.sub2' has no attribute 's2'