方法: 就是将一个功能抽取出来, 以达到功能被重用的功能。
当我们需要这个功能的时候,就可以去调用。这样这个功能代码就只需要写一次,这样即实现了代码的复用性,也解决了代码冗余的现象。
方法的作用: 可以把功能代码封装起来,让功能代码可以被重复使用。
Java中的调用:java中都是通过方法的调用来实现一个功能和作用的,一个类和方法通过创建对象来达到进行调用,实现各个类之间的。
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建,在其他地方被引用
方法的优点
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
方法的命名规则
1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test_,例如 testPop_emptyStack。
一、java类有两种方法一种是类方法就是用static修饰的。类方法可以同时类名.方法名的方式调用。
二、一种是实例方法,就是没有static修饰的方法。而实例方法必须通过用new功能创建新对象实例,然后对象名.方法名的方式调用。
区别类方法和实例方法区别 :类方法在加载类时就被分配了内存地址,因此加载后即可被任意对象调用,并且可以通过类名直接调用(类名.方法名),而实例方法需要在创建对象后才会被分配内存地址,类方法:使用static修饰(静态方法),属于整个类的,不是属于某个实例的,只能处理static域或调用static方法;
实例方法:属于对象的方法,由对象来调用。
一、类方法特点:
类方法是静态方法,前面需要有static修饰符修饰。类方法内不能涉及有关变量的内容
1、不能调用类的对象方法
2、不能引用对象变量
3、类方法不能被重写(覆盖)
4、类方法不能使用super, this关键字
二、实例方法特点:
1、可以调用类的对象方法
2、可以引用对象变量
3、实例方法可以被重写(覆盖)
4、实例方法可以使用super, this关键字
java中的方法分为以下两种:
(1)静态方法(用static修饰的):直接使用类名.方法名和调用等。
(2)普通方法(new创建新对象实例): 用new功能创建新对象 ,
然后用对象名.方法名。 (对象名 . 属性名 )
(3 )第三种就是构造方法,构造方法主要用于对类进行初始化。
(其中的类是 :java中给定的类,可以是抽象类,或者是父类)
(方法:是可以自定义的方法,也可以是java官方给定的方法)
定义方法的格式详解如下:
修饰符 返回值类型 方法名(形参列表) {
// 方法体
}
修饰符: public static 现阶段大家使用这个固定写法。后续会有变化的,到时候再讲解。
返回值类型: 表示方法运行的结果的数据类型。有基本数据类型,引用数据类型,和void(无返回值)三种形式。
注意:如果方法没有返回值类型申明也必须加上void,意思是方法无需返回结果数据。
方法名称:首字母小写,满足“驼峰模式”,动词
形参列表:方法在运算过程中的需要接收的数据,调用者调用方法时传递给方法具体的数据。
形参列表的格式如下:
数据类型 参数名称, 数据类型 参数名称,数据类型 参数名称,…
2.1java中方法的调用
Java中的一个类怎么调用另一个类中的方法
调用方法 :在方法的主体中执行代码称为调用(或调用)方法。
方法调用:
A 静态的方法: 类名.属性名/方法名
B 实例化对象: 类名 对象名 = new类名();
对象名. 属性/方法
二静态调用 非静态方法/属性,都得先实例化对象。
类名 对象名 = new类名();
对象名. 属性名/方法名
一非静态调用静态方法 二非静态调用非静态方法
1)同一类中:直接调用 a: 类名 . 方法(只能是静态属性)
2)不同类中: b:实例化对象
总结:可直接调用的三种情况
1.一个类中 静态调静态 。
2. 一个类中 非静态调用 静态/非静态。
3. 静态 类名.静态属性/静态方法。
调用的概念:
Java中方法的调用指的就是使用其他类的方法,或者属性,或者直接把其他类拿过来,想用什么调用什么。
如果另一个类中的那个方法是私有的话,就不能直接调用到。
如果是其他类型的话看情况,如果是静态的(static)话,直接用类名可以调用到,如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。
java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法。
方式1、类方法可以同时类名.方法名的方式调用。
方式2、而实例方法必须先生存类的实例在通过实例.方法名的方式调用。
方法调用方法种类 :有返回值方法的调用 ,无返回值方法的调用
有返回值方法的调用方式分为3种:直接调用,赋值调用 ,输出语句调用:
无返回值方法的调用方式1种 :直接调用
直接调用:直接写方法名调用,方法会执行但是不要结果了!
赋值调用:调用方法,在方法前面定义变量,接收方法返回值
输出语句调用:在输出语句中调用方法,System.out.println(方法名())。
无返回值方法的调用方式:1种 ,不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。所以无返回值的方法只能有一种调用方式就是直接调用。
直接调用:直接写方法名调用,方法执行一次
案例要点:被调用的方法要用在主方法里面括起来。写在主方法里面。
普通方法的调用的案例详解:
解析:
String person = jedis.get(“person”);
String为修饰这个person的类,定义为String类型
List cities =jedis.lrange(“cities”, 0, -1);
List cities 为一个创建一个cities的List集合,定义为String字符串类型
静态方法的调用:
普通方法的调用:
构造方法,也就是给变量get和set方法:
以下为普通方法的调用:
以下为静态方法的调用:
有返回值的结果的的调用:
2.2方法的重载
方法重载概念:同一个类中存在多个名称相同的方法。
方法重载的要求: 2同1不同。
同:a.两个方法必须在同一个类中。 b.方法名必须相同。
不同:形式参数列表不同。(形参列表不同指的是参数个数和参数类型或者参数顺序不同,不管参数名称的)
记住:除了以上的三个因素以外,其他律都不作为函数重载的判断条件。
- 只要方法名称相同,形参列表不同那就是方法重载
重载方法调用:JVM通过方法名称确定哪些方法,通过方法的参数列表,调用不同的方法。
方法重载的意义:意义是在方法名称相同的情况(这些方法的功能和目的都是一样的,可读性非常好)形参列表不同:可以实现相同功能,不同的效果。
为什么需要方法的重载呢?
如果没有方法重载的时候,我们定义一个相同的功能,可能需要定义多个方法名。但是方法名就是代表了功能的意思。
方法的重载的作用: 在一个类中定义多个同名的方法,以适应不同类型的参数,满足不同的需求。
方法重载的使用场景
我们已经知道同名的方法决定了相同的功能,不同的参数实现功能效果的差异。如果我们需要设计一个功能,而功能也是存在多种不同的选择的时候,我们可以选择使用方法重载来实现。
方法的重载例子:
方法的重载例子 :
2.3方法重写
方法重写概念 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同)会出现覆盖效果,也称为重写或者复写。声明不变,重新实现。
应用的场景:发生在子父类之间的关系。 子类继承了父类的方法,但是子类觉得父类的这方法不足以满足自己的需求。
子类重新写了一个与父类同名的方法,以便覆盖父类的该方法。
@Override:重写注解,重写注解校验!
这个注解标记的方法,就说明这个方法必须是重写父类的方法,否则编译阶段报错。建议重写都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!
权限修饰符( 大到小排序):pubic protected 缺省 private
小结:
什么时候要进行方法重写: 父类的功能无法满足子类的需求。
方法重写4点注意事项:
1、必须要存在继承关系,方法重写是发生在子父类之间的关系。
2、方法重写时,子类方法覆盖父类方法,子类的权限修饰符要大于等于父类的权限修饰符
3、方法重写时, 子类方法覆盖父类方法,子类返回值类型、函数名和参数列表必须要等于小于父类的返回值类型。
4、方法重写时, 子类的方法名与形参参数必须与父类完全一致。
例子:我们定义了一个动物类代码如下:
然后定义一个猫类,猫可能认为父类cry()方法不能满足自己的需求:代码如下:
@Oerride重写注解,在这个例子中,子类重写了父类中的cry 的方法。
2.4代码重构
重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力。
重构:是重写的一种,即子类成员方法和父类中成员的方法名相同,只有方法的实现不同。
重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。重构代码不仅仅限于java开发中,任何开发语言中,重构都有一定的意义。
简单点理解就是:不改变代码功能的情况下,对代码进行重新整理,以达到优化代码的目的。
常见的重构行为包括:
1)删除无用的代码或者注释,提高代码的可读性;
2)拆解大方法或者类,便于阅读和维护;
3)提炼项目中可用设计模式的地方,简化实现过程。
总之,重构就是通过调整程序代码,改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。