之前学cpp的时候已经学过了,在此对java的面向对象也记录熟悉一下哈~
之前博文《Android学习笔记之——Android Studio的安装(3.6版本)、Java的基本语法及Android的概述 》有介绍过如何基于android studio进行java开发,但是本博文不打算对代码进行运行(虽然建议学习的时候边看边敲)
目录
方法
方法的定义
方法的调用
使用方法的一些注意事项
方法的重载(Overload)
面向对象
概述
类和对象
类的定义
构造方法
创建对象
封装
This方法
继承
多态
其他知识点笔记
数组
Java中内存划分
参考资料
Java方法是语句的集合,它们在一起执行一个功能。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
定义方法时。三个注意点:
方法名称(参数);
方法调用的三种格式
而对于返回值为void的方法,只能单独调用。
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表(参数的数目、类型不同、多参数的顺序不同)。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。所以方法的重载与参数的名称及返回值的类型无关。
程序中有面向过程和面向对象两种。
面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲历亲为,详细处理每一个细节。
面向对象:不关心具体的步骤
面向对象的三大特征:封装、继承、多态
类是对一类事物的描述,是抽象的。对象是一类事物的实例,是具体的。类是对象的魔板,对象是类的实例。
public class 类名称{
成员变量
变量类型 名称
成员方法
方法的声明(成员方法没有static)
}
成员变量:对应事物的属性。直接定义在类当中,在方法的外边
成员方法:对应事物的行为。不要写static关键字
一个类可以包含以下类型变量:
局部变量与成员变量的区别:
每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装在java中的体现:
一旦使用使用private修饰,那么本类以外不能直接访问。进而可以提高代码的安全性
而间接访问private成员变量,就是定义一对Getter/Setter方法。
修改属性的可见性来限制对属性的访问(一般限制为private),例如:
public class Person {
private String name;
private int age;
}
这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。
对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
public class Person{
private String name;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public void setName(String name){
this.name = name;
}
}
采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。
this来指代当前的类。通过谁调用的方法,谁就是this
继承是多态的前提。
继承主要解决的问题是:共性抽取
格式:
class 父类 {
}
class 子类 extends 父类 {
}
关于同一个类中变量重名
如果不写this和super的话,访问的方法是就近原则。
方法的重写与重载
关于继承中的构造方法
super关键字
this关键字
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作,如图所示
extends继承或者implements实现是多态性的前提。
成员变量与成员方法的规则不一样!
多态的作用
初始化方法:
数据类型 [] 数组名称=new 数据类型[数组的长度];
数据类型 [] 数组名称=new 数据类型[] (元素1,元素2,...);
数组长度在程序运行过程中不可改变。通过数组.length来获取长度
长度为任意可变的
注意,泛型只能是引用类型,不能是基本类型。
多个对象共享同一个数据。
https://www.runoob.com/java/java-methods.html