二、方法

1、方法的重载

1.1 方法的签名

  • 方法的唯一标识就是方法的签名:方法的名字和参数列表;
  • 一个类中不能出现两个方法的签名完全一样的方法

1.2 方法的重载

  • 方法名相同但参数列表不同称之为方法的重载。
public void show(){}
//互相构成重载
public void show(int i) {}

1.3 访问重载方法

  • 编译器在编译时会根据方法的起那么绑定调用不同的方法

2、构造方法

2.1 构造方法的语法结构

  • 构造方法是类的成员之一----------特殊的方法,有如下两个规则:
  • 方法名和类名相同;
  • 没有返回值类型,且不写void
public class Person{
public Person(){
//构造方法
}
}

2.2 通过构造方法初始化成员变量

  • 构造方法的意义:初始化成员变量
  • 当实例化一个对象时:new Person():实际上是执行了对应的构造方法
public class Person() {
Public Person() {
System.out.println("执行了无参构造方法");
}
}
public class Test{
public void static main(String[] args){
Person p = new Person();//执行了无参构造方法
}
}

2.3 this关键字

  • this关键字解决了构造方法参数名称的属性名称同名的问题;
public Person(String name,int age) {
this.age = age;
this.name = name;//this解决同名问题。增加代码可读性
}
  • this关键字是谁?谁调用了this.属性或方法中的某个属性和方法,则this就调用谁
public Person(String name) {
System.out.println("Person的无参构造方法");
this.name = name;//this.指Person对象。
}

2.4 默认的构造方法

  • 一个类必须有构造方法,当类中没有定义时,编译器会提供一个默认的无参构造方法;
  • 当我们显式的定义了任意一个构造方法时,系统将不会提供默认的无参构造方法。
public class Person {
String name;
int age;
public Person(String name) {//类名相同 且无返回值类型--- 构造方法
System.out.println("Person的无参构造方法");
this.name = name;//区分同名的
}
public void show () {
System.out.println("show1");
}
public void show (int i) {
System.out.println("show2");
}
public void show (double d) {
System.out.println("show3");
}
public void show (int i ,double d) {
System.out.println("show4");
}
public void Show (int i ,double d) {
System.out.println("show5");
}
}
public class TestMethod {
public static void main(String[] args) {
Person p = new Person();//会报错,系统不会提供默认的构造方法
}
}

2.5 构造方法的重载

  • 类名相同,但参数列表不同的构造方法,我们称之为互相构成重载。
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public Person(String name) {//类名相同 且无返回值类型--- 构造方法
System.out.println("Person的无参构造方法");
this.name = name;//区分同名的
}
 

java面向对象编程---方法的更多相关文章

  1. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  2. java 面向对象编程。。。。

    经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...

  3. 《Java面向对象编程》

    <Java面向对象编程> 第11章 对象的生命周期 11.1  创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...

  4. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...

  5. JAVA面向对象编程课程设计——web版斗地主

    一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...

  6. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  7. Java面向对象编程(一)

    由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...

  8. JAVA学习(五):Java面向对象编程基础

    Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...

  9. (一)如何理解java面向对象编程

    哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...

随机推荐

  1. vue项目中的去抖与节流

    节流 // fn是我们需要包装的事件回调, interval是时间间隔的阈值 function throttle(fn, interval) { let last = 0; // last为上一次触发 ...

  2. input输入框自动填充的问题

    火狐浏览器打开页面,input可以自动填充历史输入值,现在想无论input类型是type='text'还是'password'都禁止自动填充,因为我写的页面在input='text'时先检查是否有输入 ...

  3. 最新 x86_64 系统调用入口分析 (基于 5.7.0)

    最新 x86_64 系统调用入口分析 (基于5.7.0) 整体概览 最近的工作涉及系统调用入口,但网上的一些分析都比较老了,这里把自己的分析过程记录一下,仅供参考. x86_64位系统调用使用 SYS ...

  4. 面试官问:浏览器输入 URL 回车之后发生了什么?

    一个执着于技术的公众号 前言 这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了. 注意:本文的步骤是建立在,请 ...

  5. drf-Serializers

    What is serializers? serializers主要作用是将原生的Python数据类型(如 model querysets )转换为web中通用的JSON,XML或其他内容类型. DR ...

  6. 2021 CSP-J复赛 我的备战与游记

    目录 备战 2021.10.18 2021.10.19 2021.10.20 2021.10.21 2021.10.22 比赛当日 早上 线下见面 正文 比赛后 赛后总结与讲解 简单总结 Candy ...

  7. linux下的mysql数据库以及mysql主从复制

    参考博客 1.mysql数据库的安装 centos7如何安装mysql 1.yum安装 1.1首先配置yum源,然后再用yum进行安装 2. 源代码编译安装 3.rpm包安装 yum安装的前提条件,是 ...

  8. spring4+hibernate4 整合

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  9. 使用WebDriverManager实现自动获取浏览器驱动程序

    原理: 自动到指定的地址下载相应的浏览器驱动保存到缓存区 ~/.cache/selenium 痛点: 解决因Chrome浏览器升级,driver需要同步升级,要重新下载驱动的问题 区别: 传统方式 需 ...

  10. 论文解读(ClusterSCL)《ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs》

    论文信息 论文标题:ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs论文作者:Yanling Wang, Jing ...