二、方法

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. sql索引优化思路

    [开发]SQL优化思路(以oracle为例) powered by wanglifeng https://www.cnblogs.com/wanglifeng717 单表查询的优化思路 单表查询是最简 ...

  2. [笔记] 轮廓线 DP

    是状态 DP 的一种,主要是对于网格图状压,实现 \(O(1)\) 转移的一种处理方式. oooo---- ----x - 是状压了信息的位置,x 是当前更新的位置. 应用价值 可以一格一格考虑状态, ...

  3. 为什么vue中的v-bind用在class属性上有点怪?

    如图所见,普通的标签属性我们直接使用 :属性名=`props的值` 就可以了.为什么用到class里要加[ ] 这个???

  4. CVE-2021-35042

    CVE-2021-35042 漏洞介绍 Django 是 Python 语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架. 漏洞影响版本:django 3.1.3.2 202 ...

  5. JuiceFS v1.0 beta3 发布,支持 etcd、Amazon MemoryDB、Redis Cluster

    JuiceFS v1.0 beta3 在元数据引擎方面继续增强,新增 etcd 支持小于 200 万文件的使用场景,相比 Redis 可以提供更好的可用性和安全性.同时支持了 Amazon Memor ...

  6. C语言函数调用栈

    C语言函数调用栈 栈溢出(stack overflow)是最常见的二进制漏洞,在介绍栈溢出之前,我们首先需要了解函数调用栈. 函数调用栈是一块连续的用来保存函数运行状态的内存区域,调用函数(calle ...

  7. python工具--获取盛科交换机端口模块类型,波长,传输距离等信息

    交换机端口模块信息对应的OID节点为各厂商私有节点,获取其他厂商信息需要把OID进行替换 1 #! /usr/bin/env python 2 #-*-coding:utf-8-*- 3 import ...

  8. 使用 IDEA 构建聚合工程并引入 Spring Boot

    简介 聚合工程里可以分为: Project 项目,也可称为顶级项目.顶级工程.父工程 Module 模块,也可称为子模块.子工程 总结一下: 这两者之间是父子继承的关系,即 模块继承顶级项目,模块之间 ...

  9. c# DirectoryEntry LDAPS

    参考地址:https://stackoverflow.com/questions/54987776/ldap-connection-error-the-server-is-not-operationa ...

  10. 微信小程序开发 记录

    采坑了 微信小程序--TabBar不出现的一种原因 学习微信小程序中,遇到底部的TabBar不出现的问题.经过多番尝试,终于解决问题.在此记录问题产生的原因和对策.下面先描述错误现象,接着指出错误原因 ...