• 接收键盘的输入:1.创建一个键盘扫描器对象 java.util.Scanner s=new Scanner(System.in); 2.接收用户输入s.nextInt();
  • 静态变量在类加载的时候就分配内存了,实例变量在对象创建时才会分配内存,静态代码块和静态变量都是在类加载的时候执行,所以要按顺序执行
  • 静态代码块在类加载的时候执行且只执行一次,实例代码块在每执行一个构造方法执行之前就执行一次,静态变量在类加载时赋初值,实例变量在创建对象时赋初值
  • 继承:(作用:可以实现方法的重复使用,但最重要的是有了继承才会有方法的覆盖和多态机制)

    • 私有方法不能继承
    • 构造方法不能继承
    • java只支持单继承
  • 当源码当中一个方法以";"结尾,并且修饰符列表中有“native”关键字,表示底层调用了C++写的dll程序(dll动态链接库文件)
  • 直接输出一个引用,会调用引用的toString方法
  • 方法重载和方法覆盖
    • 方法重载(Overload):在同一个类中功能相似的方法

      • 1.在同一个类中
      • 2.方法名相同
      • 3.参数列表不同(个数、类型、顺序)
      • 4.其它可以随意
    • 方法覆盖(Override/Overwrite):父类的需求已经不足以满足子类的业务需求,子类需要重写父类的方法

      • 1.两个类必须有继承关系
      • 2.重写之后的方法和之前的方法具有:相同的返回值类型(对于基本数据类型,必须相同,对于引用数据类型,重写之后可以变小,由Animal变成Cat)、相同的方法名、相同的形式参数列表
      • 3.访问权限只能更高(public、protected、缺省、private)
      • 4.抛出异常只能更少
    • 方法覆盖注意事项:
      • 私有方法只能间接访问,所以不能覆盖
      • 构造方法只能通过super()访问,不能覆盖
      • 静态方法不存在方法的覆盖(因为没有意义),所以只针对实例方法
        public class Test16 {
        public static void main(String args[]){
        Animals animal=new Animals();
        animal.doSome();
        }
        }
        cla ss Animals {
        public static void doSome() {
        System.out.println("Animal的doSome方法执行");
        }
        }
        class Cats extends Animals {
        public static void doSome() {
        System.out.println("Cat的doSome方法执行");
        }
        }

        Animal的doSome方法执行

    • 私有变量也可以被继承,这是不能直接进行访问,必须通过get、set方法进行访问,私有方法也必须是通过公共方法来访问
  • 在使用toString方法的时候,一般都是要重写toString方法的,因为Object类的toString方法输出的是对象的内存地址,public String toString(){}
  • 多态:无论是向上转型还是向下转型,两种类型之间必须要有继承关系,这是首要条件。(向上转型和向下转型是专业的词,自动类型转换和强制类型转化虽然也可以这样说,但是不专业,这一般是说数据类型的)
  • Animal a=new Dog();编译时检测到a属于Animal类型所以叫静态绑定,运行时创建Dog对象所以叫动态绑定,所以叫做多态,向上转型,只要编译过了,运行一定不会出错,但是向下转型可能会出错,应该使用instanceof运算符进行判断
  • instanceof运算符可以在运行阶段动态判断引用指向的对象类型(引用 instanceof 类型 ),运算结果只能是true或false
  • 软件开发的七条原则有一条是:开闭原则OCP(对扩展开放,对修改关闭)
  • 多态在开发种的作用:

降低程序的耦合度,提高程序的扩展力

public void feed(Dog dog) {
dog.eat();
}
public void feed(Cat cat) {
cat.eat();
}
public void feed(Pet pet) {
pet.eat();
}
    • this和super区别:
    • this
      • this出现在实例方法和构造方法中
      • this的语法是“this.”、"this()"
      • this不能使用在静态方法中
      • this.大部分情况下可以省略
      • this.什么时候不能省略呢,在区分局部变量和实例变量的时候
      • this()只能出现在构造方法第一行,通过当前的构造方法调用"本类"中的其他构造方法,目的是”代码复用“
      • this可以单独使用,会自动调用引用的toString方法
    • super:
      • super出现在实例方法和构造方法中
      • super的语法是“super.”、"super()"
      • super不能使用在静态方法中
      • super.大部分情况下可以省略
      • super.什么时候不能省略呢,父中有,子中又有,如果想访问“父特征”,super.不能省略
        public class Test18 {
        public static void main(String args[]) {
        Vip vip = new Vip("张三");
        vip.shopping();
        }
        }
        class Customer {
        String name;
        public Customer() {
        super();
        }
        public Customer(String name) {
        super();
        this.name = name;
        }
        public String getName() {
        return name;
        } public void setName(String name) {
        this.name = name;
        }
        }
        class Vip extends Customer {
        String name;
        public Vip() {
        super();
        }
        public Vip(String name) {
        super();
        this.name = name;
        }
        public void shopping() {
        System.out.println(this.name + "正在购物");
        System.out.println(super.name + "正在购物");
        System.out.println(name + "正在购物");
        }
        }

        张三正在购物
        null正在购物
        张三正在购物

      • super()只能出现在构造方法第一行,通过当前的构造方法调用"父类"中的其他构造方法,目的是:创建子类对象时候,先初始化父类型特征
    • 重要结论:
      • 当一个构造方法第一行,既没有this()又没有super()的话,默认会有一个super(),表示通过当前子类的构造方法调用父类的无参构造方法,所以必须保证父类的无参构造方法是存在的
      • this()和super()不能共存,他们都是只能出现在构造方法第一行
      • 在java语言中不管new什么对象,最后老祖宗的Object类的无参构造方法一定会执行,并且Object类的无参构造方法一定是最先执行的
      • super不是引用,super也不保存内存地址,super也不指向任何对象
  • 其实子类可以继承父类的所有东西,包括构造方法和私有变量以及私有方法,只是访问构造方法要通过super()关键字访问,访问私有变量和私有方法要间接的通过公开的方法进行访问
  • 静态方法访问的时候最好使用类名.的方式进行访问,因为和对象无关
public class Test16 {
public static void main(String args[]){
Animals animal=new Animals();
animal.doSome();
}
}
class Animals {
public static void doSome() {
System.out.println("Animal的doSome方法执行");
}
}
class Cats extends Animals {
public static void doSome() {
System.out.println("Cat的doSome方法执行");
}
}
Animal的doSome方法执行
  • 私有的只能在本类中访问,就算用super关键字访问父类的的私有方法和变量都不行,只能通过公开的方法进行间接访问
  • System.exit(0);终止程序的执行,退出JVM
  • idea和eclipse的区别
    • eclipse的workspace相当于idea的project,eclipse的project相当于idea的module,eclipse的main方法输入main,idea的main方法输入psvm,eclipse的输出语句输入syso,idea的输出语句输入sout
    • idea是自动保存的,不需要ctrl+s
    • eclipse是ctrl+d删除一行,idea是ctrl+y删除一行
    • 两者的目录都是左箭头关闭,右箭头展开

动力节点——day03的更多相关文章

  1. 分布式技术EJB3_分库架构 - 【动力节点官网】北京Java …

    分布式技术EJB3_分库架构 - [动力节点官网]北京Java … http://www.bjpowernode.com/xiazai/2220.html <程序天下--EJB JPA数据库持久 ...

  2. 001_动力节点_SpringMVC4_SpringMVC简介

    1.视频的下载地址是 下载地址:百度云盘 链接:http://pan.baidu.com/s/1ge58XW3 密码:yd5jhttp://www.java1234.com/a/javaziliao/ ...

  3. 动力节点Java培训告诉你Java线程的多功能用法

    现在的java开发可谓是八仙过海各显神通啊!遥想当下各种编程语言萎靡不振,而我Java开发异军突起,以狂风扫落叶之态,作为Java培训行业的黄埔军校,为了守护Java之未来,特意总结了一些不被人所熟知 ...

  4. [Java语言] 《struts2和spring MVC》的区别_动力节点

    1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...

  5. 动力节点 mysql 郭鑫 34道经典的面试题三

    1.第十五题 15.列出受雇日期早于其直接上级的所有员工编号.姓名.部门名称 思路一:第一步将emp a看成员工表,将emp b 看成领导表,员工表的mgr字段应该等于领导表的主键字段 mysql&g ...

  6. 动力节点 mysql 郭鑫 34道经典的面试题二

    13.有3个表S(学生表),C(课程表),SC(学生选课表) S(SNO,SNAME)代表(学号,姓名) C(CNO,CNAME,CTEACHER)代表(课号,课名,教师) SC(SNO,CNO,SC ...

  7. 动力节点 mysql 郭鑫 34道经典的面试题

    DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `DEPTNO` int(2) NOT NULL COMMENT '部门编号', `DNAME` ...

  8. Java学习day03

    day03 课堂笔记 1.数据类型 2.总结第二章到目前为止所学内容: * 标识符 * 关键字 * 字面值 * 变量 成员变量如果没有赋值,系统会自动赋值,而局部变量不手动赋值,则会编译不通过. * ...

  9. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  10. Java编程中的美好

    java程序员如何写出"优美"代码,动力节点告诉你怎么办: 1.注释尽可能全面 对于方法的注释应该包含详细的入参和结果说明,有异常抛出的情况也要详细叙述:类的注释应该包含类的功能说 ...

随机推荐

  1. 7.httpie

    可以使用curl或httpie测试我们的服务器.Httpie是用Python编写的用户友好的http客户端   安装:pip3 install httpie #get请求示例 输入命令:http ht ...

  2. OpenFOAM 编程 | 求解捕食者与被捕食者模型(predator-prey model)问题(ODEs)

    0. 写在前面 本文问题参考自文献 \(^{[1]}\) 第一章例 6,并假设了一些条件,基于 OpenFOAM-v2206 编写程序数值上求解该问题.笔者之前也写过基于 OpenFOAM 求解偏分方 ...

  3. for in 和 for of 的区别和v-for指令的三种使用方法

    for...in 循环:只能获得对象的键名,不能获得键值 for...of 循环:允许遍历获得键值 var arr = ['red', 'green', 'blue'] for(let item in ...

  4. 【题解】CF1215C Swap Letters

    题面传送门 解决思路 首先容易得知,两个字符串中 \(b\)(或 \(a\)) 的个数为偶数时,一定有解.为奇数则一定无解. 其次考虑怎么交换.对照样例三: in: 8 babbaabb ababab ...

  5. Codeforces Round #817 (Div. 4)

    CF传送门 因为洛谷题库未更新,所以给出的题面都是CF的. 现场打真是太卡了(梯子挂了,codeforc.es也崩了),所以五六分钟才打开题目 \(qwq\) A. Spell Check 萌萌题,把 ...

  6. fastjson远程代码执行漏洞

    fastjson漏洞学习记录 免责声明: Fastjson 1.2.24 远程代码执行漏洞 漏洞说明 前提条件 影响范围 漏洞复现 Fastjson<=1.2.47 远程代码执行漏洞 Fastj ...

  7. 对于函数极限存在的充要条件“lim f(x)=A互推f(x)=A+a(x) lim a(x)=0”补充解释

    毫无疑问,这个定义适用于任何函数极限,诺f(x)有去间断点的时候,a(x)也为可去间断点函数. 例:

  8. C++编程笔记(通信)(win32平台)

    目录 一.初始化网络库 二.socket套接字 2.1服务端 2.2客户端 三.发送.接收数据 3.1发送 3.2接收数据 四.自定义的结构体 4.1 发送端 4.2接收端 IPV6版本套接字的创建 ...

  9. 【面试题总结】Java并发-多线程、JUC详述(思维导图)

    〇.整体目录 一.多线程 1.实现方式 2.内存图 3.线程状态 4.实现线程同步 5.并发编程 二.JUC 1.概述与volatile关键字 2.ThreadLocal类 3.CAS方法 4.ato ...

  10. 云原生 • Kubernetes 认识 k8s、k8s 架构、核心概念点介绍

    云原生 • Kubernetes 认识 k8s.k8s 架构.核心概念点介绍 一.Kubernetes 简介Kubernetes 简称 k8s,是支持云原生部署的一个平台,起源于谷歌.谷歌早在十几年之 ...