zoukankan      html  css  js  c++  java
  • Java中方法和类的深入分析

    1.构造方法不能被继承。也就是说子类里没有父类的构造方法。
     
    Java重载根据的是实参和方法形参之间的匹配。自动类型转换也在重载版本的判断中起到了作用。重载的价值在于允许使用通用名称访问相关的方法。
    参数传递:分为两种:值调用(call-by-value)、引用调用(call-byt-reference)
    Java使用值调用传递所有实参。但根据所传递的是基本类型还是引用类型,精确效果是不同的。
    1.当为方法传递基本类型时,使用值调用,因此会得到实参的副本。
    2.当为方法传递对象时,情况就不同了,因为对象是通过引用调用传递的。当创建类变量时,只是创建指向对象的引用。因此,形参所引用的对象和实参所引用的对象是同一个。在方法内修改对象会影响到作为实参的对象。
    当将对象引用传递给方法时,引用本身还是值调用。但是,由于传递的值引用一个对象,因此值的副本仍然引用相应实参指向的同一个对象。
     
    static:独立于类的所有对象进行使用的成员。
    被声明为静态的实例变量,在本质上是全局变量。当声明类的对象时,不会生成静态变量的副本。类的所有实例共享相同的静态变量。
    静态方法有几个限制:
    1. 只能直接调用其他静态方法
    2. 只能直接访问静态数据
    3. 不能以任何方式引用this或super关键字
     main()方法被声明为静态的,因为需要在创建所有对象之前调用该方法。
     
    final:final变量必须在声明时进行初始化,有两种方式:
    1. 在声明时提供值
    2. 在构造函数中提供值
    final变量全部使用大写。
    方法参数和局部变量也可以使用final:
    1. 参数:防止在方法中修改参数
    2. 局部变量:防止多次为其赋值
    方法也可以使用final
     
    嵌套类和内部类:嵌套类的作用域被限制在包含它的类中。不能独立于包含它的类存在。
    嵌套类可以访问包含类的成员,包括私有成员,包含类不能访问嵌套类的成员。
    嵌套类直接在包含类中作为成员声明,也可以在代码块中声明嵌套类。
    嵌套类分类:
    1. 静态的嵌套类:只能通过对象访问包含类的非静态类成员。
    2. 非静态的嵌套类:如内部类。可以直接饮用外部类的所有变量和方法。
    嵌套类起始于Java 1.1
    内部类为什么很重要:因为内部类是在包含它的类的作用域内定义的,所以可以访问外面的类的所有变量和方法。与另外写一个类比较,不用保存调用对象的引用。
     
     可变长参数:
    1. 可变长参数在作为数组给予的。
    2. 可变长参数必须是方法最后声明的参数。
    3. 如果使用可变长参数,并且有重载版本,要严格注意其模糊性。
  • 相关阅读:
    IO模式和IO多路复用详解
    消息队列RabbitMQ、缓存数据库Redis
    rest framework认证组件和django自带csrf组件区别详解
    django进阶之缓存
    关于CSRF攻击详解
    Linux学习常用命令大全
    .NET 开源工作流: Slickflow流程引擎基础介绍(四) -- 多数据库支持实现
    .NET 开源工作流: Slickflow流程引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
    .NET 开源工作流: Slickflow流程引擎基础介绍(二) -- 引擎组件和业务系统的集成
    .NET开源敏捷开发框架: SlickOne介绍(一) -- 基于Dapper, Mvc和WebAPI 的快速开发框架
  • 原文地址:https://www.cnblogs.com/java-123/p/8711309.html
Copyright © 2011-2022 走看看