文章首发及后续更新:https://mwhls.top/1277.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。

Java基础目录
这本Java程序设计基础(第6版)-陈国君真的不错,讲的很清楚,例子也都是能直接使用的,推荐一下。

基础-强调本类成员-this

  • this.成员名,强调该成员,是本类的。
  • 外部传参名与成员名一致时,成员被隐藏,需要使用this。
    • 这个关键字真的不错,非常适合取名偷懒,以及核对。

例子见下面访问控制修饰符的代码。

基础-类中成员变量初始值定义

在定义变量时,直接赋值即可。

class Triangle{int value = 1;  //将Triangle类生成的对象中,value的默认值设置为1,如不设置,会使用int类型默认值,即0。
}

访问控制修饰符

  • private:私有访问修饰符,作为修饰时,仅可在本包本类内部调用该成员。

    • 若想在类外调用,可在类中定义非私有方法,方法中调用该成员。
  • default(缺省):缺省访问控制符,作为修饰时,仅可在本包中调用该成员。
    • 缺省是可以不写的意思。
  • protected:保护访问控制符,作为修饰时,非本包的子类可以调用。
  • public:公共访问修饰符,作为修饰时,可在任何地方调用该成员。
private int value;                   //私有成员变量
public void modifyValue(int value){  //使用公共方法修改私有成员变量this.value = value;                //使用this强调此处value为类的成员
}

方法的重载

  • 方法名相同,参数列表不同的方法,叫做方法的重载。
  • 重载的方法不是覆盖原方法,而是提供另一种调用方法的方式,
    • 即,一个方法名,可以有多种调用方式。
  • 方法的重载是实现多态的一种方式
  • 参数列表不同:

    • 顺序不同。
    • 个数不同。
    • 类型不同。
  • 参数列表中参数名称不同不算重载。
  • 方法返回值的不同不算重载。
public void show(int value){  System.out.println("show "+value);
}
public void show(){  //重载show方法。System.out.println("show");
}

构造方法

构造方法是在分配对象的时候使用的,用来初始化对象。

  • 若无构造方法,类会自动生成一个参数空、语句块空的构造方法。
  • 构造方法可重载。
  • 构造方法无返回值。
  • 构造方法名与类名相同。
  • 构造方法中可调用另一个构造方法,使用this()调用。
class Triangle{double a, b, c;Triangle(){  //参数空、语句块空的构造方法,若无构造方法,会生成空构造方法。}public Triangle(double a,double b){ //重载构造方法
。this.a = a;this.b = b;}public Triangle(double a, double b, double c){  //重载构造方法,并调用另一个构造方法。this(a, b);this.c = c;}public static void main(String[] args){Triangle t;  t = new Triangle();  //使用空构造方法new对象t,构造一个三边为0,0,0的三角形(double类型默认值为0)。t = new Triangle(3, 4, 5);  //使用带参数的构造方法new对象t,构造一个三边为3,4,5的三角形。}
}

实例成员与静态成员

  • 使用static修饰的成员,是静态成员。
  • 不使用static修饰的成员,是实例成员。
  • 静态成员的性质:

    • 静态成员,可以看做类的全局变量,由类生成的对象,共同拥有这个静态成员。
    • 静态成员的调用,可以用类名.成员名调用,无需创建对象。
    • 静态成员方法不能调用实例对象。
      • 即,静态成员方法能在对象中使用,但不能修改对象中的实例成员变量,也不能调用实例成员方法。
      • 同样的,this与super关键字也不能被静态成员调用。
class Triangle{static int value = 0;int a, b, c;static int modifyValue(){//a=0;  //会出错,因为该方法为静态方法,而a为实例变量。value += 1;return value;}public static void main(String args[]){  //编译后,会输出三行, 内容分别为1 2 3。System.out.println(modifyValue());System.out.println(modifyValue());System.out.println(modifyValue());}
}

静态初始化器

  • 与构造方法类似,但静态初始化器只在类的第一次调用时触发。
  • 结构为static{ 语句块 }
//实例成员与静态成员的代码中,加入这段代码
//输出结果会变成11 12 13。
static{value = 10;
}

Java基础(五)-类的特性相关推荐

  1. Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】

    Java基础-String类[超详细讲解] String类的特点 String在java.lang.String包中 1:特点 (1)String类型不能被继承,因为由final修饰 (2)Strin ...

  2. JAVA基础七 类和对象

    文章目录 JAVA基础七 类和对象 01 引用 02 继承 03 方法重载 04 构造方法 05 this 06 传参 07 包 08 访问修饰符 09 类属性 10 类方法 11 属性初始化 12 ...

  3. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  4. Java基础之Java8 新特性

    hp实训8.19_Java基础之Java8新特性 // 信息展示方法 ,接口中,就可以提供一种实现. 就可以使用这种功能.default void print() {System.out.printl ...

  5. Java基础 时间相关类小结[Timestamp,Date,Calendar]

    Java基础 时间相关类[Timestamp,Date,Calendar] 前言 一.Timestamp(时间戳) 二.Date(日期) 三.Calendar(日历) 四.Timestamp.Date ...

  6. Java基础|1-07-Object类与常见API(二)@API篇

    写在前面: 此系列文是笔者在学习Java系列课程的过程中,参考相关课件.视频讲解.课程代码,并结合一些文档.思维导图及个人理解,对所学内容做的阶段性梳理与总结. 写于:2021年1月28日 内容:Ja ...

  7. java基础(类与对象、集合)

    java基础(类与对象.集合) 类与对象 类与对象中的栈和堆 构造方法 this关键字 面向对象三大特性 封装性(private) 继承性(extends) 方法重写(@override) 多态性 向 ...

  8. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  9. java基础-BigDecimal类常用方法介绍

    java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...

  10. JAVA基础––从类和对象开始

    JAVA基础--从类和对象开始 一.概念 1.面向对象中类和对象的概念 对象:对象是具有状态和行为的实体,例如某个具体的学生,或者是王者荣耀里的英雄,可以是物理实体,也可以是逻辑实体. 类:类是一组具 ...

最新文章

  1. 开发工具Drawscript
  2. 医学+数据科学,必将大有可为 | 清华生物医学影像研究中心赵锡海
  3. 141. Sqrt(x)【牛顿迭代法求平方根 by java】
  4. 19行代码AC——习题3-4 周期串(UVa-455)_解题报告
  5. 第一章:渗透测试之信息搜集
  6. SSAS(分析服务)优化手册
  7. cepl进程 Linux,Ubuntu下NS2-2.33安装过程
  8. 【重磅】亚马逊向第三方开放Echo音箱语音识别技术(附AmazonEcho Dot拆解)
  9. android dagger2 讲解,用Dagger2在Android中实现依赖注入
  10. android将手机能当蓝牙耳机使用吗,如何将Android手机作为蓝牙耳机?
  11. 1_绪论 分布式机器学习
  12. 网站分析平台:是选择百度统计,还是 Google Analytics 呢?
  13. java 及时释放内存_Java里可以自动释放的不只是内存,只要是“资源”,都可以自动释放!轻松加愉快!...
  14. MacBook Air 2013全新安装Win7
  15. 一款全功能Markdown在线编辑器,让在线创作如此便捷简单
  16. mac android 模拟器地址,在mac上运行android模拟器
  17. Zebras CodeForces - 950C(思维)
  18. 阿里云的服务器、腾讯云的域名,域名解析失败的解决方案
  19. java基于quasar实现协程池
  20. 一,java虚拟机概述(什么是java虚拟机,为什么会产生java虚拟机,java虚拟机解决了什么问题)

热门文章

  1. JavaScript数组基本操作--增加、删除、截取、替换
  2. 复选框checked 选中后不显示打钩
  3. 新款发布iPhone 12 5G 价格表
  4. 中国式家长计算机入门怎么去的,中国式家长新手入门怎么玩_新手入门注意事项...
  5. 测试有没有说梦话的软件,抖音可以记录梦话的是什么软件 记录梦话APP使用方法和介绍...
  6. 比人脸支付方便多了!微信新功能曝光:抬手就能完成付款,你怎么看?
  7. 后台-数字转会计中文大写
  8. CentOS7-Docker 网络-06
  9. SQLServer空值排序
  10. 怎样恢复计算机到桌面,电脑任务栏怎么还原到桌面下方?