• 可变参数

    • 不知道可能给方法传递多少个参数时使用这个方法
    • public void printInfo (String[] args) --可以定义一个数组,在调用这个方法适合赋值给一个数组
    • public void aaa (String... args) --用java特有的...来传递可变个数的参数,在使用时,与数组的使用方式相同
    • 如果使用数组,在调用方法是要用 a.printInfo(null);没有参数就要定义一个空数组或者null,而第二种是可以直接使用a.aaa();
    • 如果一个方法有多个形参,可变参数一定要放在所有参数之后
  • 参数的传递
    • 形参:方法声明的参数
    • 实参:方法调用时实际传给形参的参数值
    • java中方法的参数传递只有:值传递
      • 基本数据类型,值是保存在栈中,引用对象,值保存在堆中,栈中保存的是对象在栈中的地址
    • 如果方法形参是剧本数据类型,那么实参像形参传递参数时,就是直接传递值,把这个实参的值复制给形参
    • 如果方法的形参是对象,那么实参向形参传递参数时,也就是吧值给形参,这个值是实参在栈内存中的值,也就是引用对象在堆内存中的地址
      • 基本数据类型都是保存在栈内存中,引用对象是在栈内存中保存的是引用对象的地址,那么方法的参数传递是值传递
  • 包和引用
    • 包 package,和文件夹的概念类似,解决文件太乱和文件重名的问题
    • package 顶层包名.子层包名,可以有层级结构
    • 包名通常小写,类名通常大写
    • 引用 import 使用在不同包中的java类
    • import 包.* 该包下所有类
  • 封装和隐藏
    • 不能开放给调用者的属性需要进行封装和隐藏
    • 通过将数据生命为私有的(private),并提供pubilc的getXX和 setX方法来实现对属性的操作
  • 访问权限修饰符
    • 在同一个java文件中可以写多个class,但是只能有一个pubilc 其他的都是缺省的
  • 构造器(构造方法)
    • 每个类都至少有一个构造器,如果显示定义了构造器,系统不再提供默认构造器,并且一个类可以创建多个重载的构造器
    • 父类的构造器不可被子类继承
    • new对象实际上就是调用类的构造方法
    • 创造器重载为了方便调用,灵活创建出不同需要的对象
  • this
    • 当形参与成员变量重名时,如果在方法内部使用成员变更,必须添加this来表明该变量是类成员
    • this() 构造器内部相互调用的特殊格式 --必须放在构造器首行
    • 使用this()时必须有一个构造器不用this的,不能自己调自己

新年在家学java之基础篇-参数&修饰符&构造器的更多相关文章

  1. 新年在家学java之基础篇-高级类的特性

    继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

  2. 新年在家学java之基础篇--类&方法

    面向对象 面向对象OOP,面向过程POP 面向对象三大特征 封装 继承 多态 类 类由属性(对应类中的成员变量)和行为(成员方法)来构成 类的成员变量可以先声明,不用初始化,有默认值 方法名称如果多个 ...

  3. 新年在家学java之基础篇--循环&数组

    因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...

  4. C# 基础之参数修饰符

    参数传参的时候一共有四种传递方式: 一.无修饰符传参 也就是说没有传参修饰符,这种情况传过去的是一个副本,本体是不会被改变的 二.out传参修饰符 在传参的参数全面加一个out: public voi ...

  5. 【Java】基础:常见修饰符(权限修饰符以及abstract、static、final等)与变量的描述

    1. 修饰符 public.protected.private.default abstract.static.final. abstract:抽象类.抽象方法 static:静态变量.静态方法.静态 ...

  6. 小白学Docker之基础篇

    系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1. docker是什么 百科上的 ...

  7. 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制

    你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...

  8. Java基础——protected访问修饰符探讨

    Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...

  9. C#中方法的参数修饰符

    做项目久了,有的时候真的需要静下心来认真的总结一下自己所用到的技术,而不是每天依葫芦画瓢,每天忙忙碌碌,到头来不知道自己忙了个啥,学了什么,自己到底掌握了多少知识.所以我想回顾一下C#的基础知识,把重 ...

随机推荐

  1. 深度理解js中var let const 区别

    首先要理解js中作用域的概念 作用域:指的是一个变量的作用范围 1.全局作用域 直接写在script中的js代码,在js中,万物皆对象,都在全局作用域,全局作用域在页面打开时创建,在全局作用域中有一个 ...

  2. mysql 如何删除数据库中所有的表

    SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')FROM information_schema.tablesWHERE table_sch ...

  3. javaScript_BOM浏览器对象模型

    BOM:浏览器对象模型 Browser Object Model 用来访问和操作浏览器窗口,使JavaScript有能力与浏览器对话 通过使用BOM ,可以移动窗口,更改状态栏.执行其他不与页面内容发 ...

  4. 对python里的装饰器

    内裤可以用来遮羞,但是到了冬天它没法为我们防风御寒,聪明的人们发明了长裤,有了长裤后宝宝再也不冷了,装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效. 再回到我们的主 ...

  5. springBoot中的邮件发送

    1. 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  6. Spring中的控制反转和依赖注入

    Spring中的控制反转和依赖注入 原文链接:https://www.cnblogs.com/xxzhuang/p/5948902.html 我们回顾一下计算机的发展史,从最初第一台计算机的占地面积达 ...

  7. sping中 各种注解——@SuppressWarnings注解用法

    @SuppressWarnings注解用法 @SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点. 如图所示: 这时候我们在 ...

  8. 吴裕雄--天生自然TensorFlow2教程:数学运算

    import tensorflow as tf b = tf.fill([2, 2], 2.) a = tf.ones([2, 2]) a+b a-b a*b a/b b // a b % a tf. ...

  9. vue图片查看器

    vue 安装图片查看器插件安装cnpm install v-viewer引用 import 'viewerjs/dist/viewer.css' import Viewer from 'v-viewe ...

  10. ubuntu下查询网络的常用命令

    1.查看无线路由器(网关)的IP地址 在terminal中输入如下命令,即可查询到当前使用的路由器的IP地址(我电脑是连着一个无线网络还有一个DSL连接): route|grep -i default ...