首页 > 其他分享 >动力节点——day03

动力节点——day03

时间:2022-10-24 10:01:58浏览次数:55  
标签:动力 name 构造方法 day03 方法 void public super 节点

  • 接收键盘的输入: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删除一行
    • 两者的目录都是左箭头关闭,右箭头展开

标签:动力,name,构造方法,day03,方法,void,public,super,节点
From: https://www.cnblogs.com/wei-xin-yuan/p/16801357.html

相关文章

  • 刚体模拟1-无约束刚体动力学 Rigid Body Simulation I—Unconstrained Rigid Body Dyn
    介绍这部分课程笔记涉及刚体动力学问题。为了帮助您开始模拟刚体运动,我们提供了实现这些笔记中讨论的大多数概念的代码片段。这部分课程笔记分为两部分。第一部分涵盖了......
  • 单链表插入和删除一个节点的伪代码算法
    插入设ai-1节点为pai+1节点为q插入节点为t则p-->t-->next=q-->next删除设ai-1节点为pai+1节点为q删除的字节为tp-->next=t-->nextfree(t)参考链接https://bl......
  • Kubernetes--Pod节点选择器nodeSelector(标签)
    Pod节点选择器是标签及标签选择器的一种应用,它能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点。Kubernetes的kube-scheduler守护进程负责在各工作节点......
  • 参考图中删除节点的链表,写出单链表插入和删除一个节点的伪代码算法。 节点包含数据dat
    单链表的插入:定义列表a=[a1,a2......ai-1,ai+1......an-1,an]cym-1-->节点p,cym+1-->节点q(此时p->next=q)设插入元素cym为节点xx->next=p->nextp->next=x单链表......
  • 所有节点安装flannel插件4
    所有节点安装flannel插件4k8s是大规模的使用容器有的容器是在node1上启动的,有的容器是在node2上启动的,有的容器是在node3上启动的;容器和容器之间需要相互通信。相互通讯......
  • weblogic洞若观火第5篇之手工操作管理节点
    引言上一篇文章,主要讲解:weblogic的手工创建域。在本篇文章中,我们接着介绍:weblogic的手工操作管理节点AdministrationServer。管理节点AdministrationServer管理服务器是......
  • k8s基础篇 pod(六)节点选择器
    6.node节点选择器我们在创建pod资源的时候,pod会根据schduler进行调度,那么默认会调度到随机的一个工作节点,如果我们想要pod调度到指定节点或者调度到一些具有相同特点的node......
  • Redis两节点高可用设计方案​功能验证
    该文档主要是针对RedisGraph高可用方案设计的功能测试,来说明方案是可实施是可行的。具体方案设计看前面的高可用方案设计文章功能测试准备条件master、slave两台服务器172.......
  • day03-2-拓展
    满汉楼035.拓展_多表查询前面都是对单表进行操作思考一个问题:如果多表查询怎么处理?例如,查看账单时,希望现实菜品名称查询的结果从上图变为下图:方案一由多张表组合......
  • k8s-node节点的安装3
    k8s-node节点的安装3环境:master节点:10.0.0.11node1节点:10.0.0.12node2节点:10.0.0.13接下来node1节点的安装node1节点安装的时候就自动把docker安装了,不要epel源,默......