目录
面向对象编程(Object-Oriented Programming,OOP)是一种编程方法,其中程序是由对象组成的。面向对象的编程的核心思想是,将程序中的实体、数据和功能抽象为单独的对象,并在这些对象之间建立联系。
面向对象方法的主要方面包括:
- 继承:子类继承父类的属性和方法,并可以添加新的属性和方法。
- 封装:对象的内部状态和行为被隐藏在对象内部,只能通过公共的方法访问。
- 多态:同一个方法可以有不同的实现,根据不同的对象类型而有不同的行为。
- 抽象:通过抽象类和接口来定义对象的公共行为,但不实现该行为。
- 关联:对象之间的关系,例如一对多,多对一等。
这些方面可以使程序更易于维护、扩展和重用,并使代码更具可读性和清晰度。面向对象的方法已经成为现代编程的重要方法,并应用于各种领域,如桌面应用程序、移动应用程序、游戏等
一,类和对象
类就是一块模板,确定对象将会拥有的特征(属性)和行为(方法)。具有相同属性和方法的一组对象的集合,就是类,类是抽象的。声明类、属性、方法、初始化块可以多个、静态块也可以多个。

二,属性
访问修饰符:public 公共的 private 私有的 protected 保护 默认 friendly
| 访问修饰符 | 本类 | 同包下类 | 子类 | 其他实例对象 |
| private int id; | √ | |||
| 默认(friendly、default) int id; | √ | √ | ||
| protected int id; | √ | √ | √ | |
| public int id; | √ | √ | √ | √ |
示例代码解释如下:
public class Csdn0713 {
public class C2 {
/*属性 成员变量*/
public int id; //全局
private final int num = 18;//私有
protected String addr = "郑州";//受保护
String name = "jack";//友好,默认
/* 静态属性 类变量 */
public static int sid = 3;
//静态 static 只分配一次内存
/*常量 不能修改只能使用*/
/*常量 不能修改只能使用*/
public static void main(String[] args) {
}
}
}
三,方法
1,方法的声明语法
访问修饰符 返回值类型 方法名(参数) {
方法体;//执行语句
}
方法体:
在方法声明后的一对大括号以及中间的内容就称之为方法的方法体,方法体的内容包括局部变量的声明和Java语句
访问修饰符:
当前我们的访问修饰符常用的一般为public,private
- public是公共的,被public所修饰的成员可以在任何类中都能被访问到。
- private是私有的,即只能在当前类中被访问到,它的作用域最小
返回值
- 表示方法要返回的数据类型,int ,double,String等等,
- 返回值要和定义的返回值类型一样。
- 方法的返回值是通过return语句获得的。
- 对于不带返回值的方法,应用void表示无返回值。
参数:
参数列可以是空的,即无参方法,也可以有多个参数,定义的时候必须声明类型。不管有没有参数,方法名后的括号都必须要有。
方法的结束:
方法执行时碰到return后就结束了,return之后的所有语句都不会执行。
2,入口方法
public static void main(String[] args){
}
一个类中只能写个入口方法,代表当前类可以独立运行。方法的参数String[] 参数。
3,构造方法
方法和类名一致,没有返回值,不使用void,此方法不直接通过实例对象调用,此方法在实例化对 象时new 的时候就开始执行构造方法,在构造方法的第一行代码,默认是super();
注意:如果在编写类的时候编写了构造方法,建议再编写无参构造方法,如果没有编写构造方法,默认给一 个无参的构造方法。
- 编写一个类,默认添加个无参空构造方法,如果编写构造方法,不再添加无参空构造方法
- 声明类中,方法名和类名一致
- 构造方法不允许有返回值
- 构造方法不允许使用void
- 构造方法在实例化执行,不能通过对象调用执行
- 建议编写类的时候,在编写构造方法,再编写一个无参构造方法
- 构造方法功能:在类实例化时,进行对实例对象初始化
User.java
public class User{
public User(){
}
}
5.1,重载方法
在一个类,或多个继承关系类中,存在方法名称一样,方法参数不一样,此类方法重载方法,称为构造方法重载。调用方法时,通过传递给它们的不同个数和类型的参数以及传入参数的顺序来决定具体使用哪个方法
注意:
- 方法名 : 必须相同
- 方法的修饰符可以不相同
- main 方法也可以被重载
- 形参列表: 必须不同(形参类型或个数或顺序 ,至少有一样不同 ,参数名无要求)
- 返回类型: 无要求
示例代码如下:
static int sum() {
return 0;
}
static int sum(int a, int b) {
return a + b;
}
static double sum(float a, float b) {
return a + b;
}
static double sum(double a, double b) {
return a + b;
}
4,递归方法
在方法内部,再次调用本方法,此方法就是递归方法。递归,相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式. 例如, 我们求 N! 起始条件: N = 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件.
递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! => N * (N-1)
示例代码如下:
public class Csdn0714 {
//递归方法
public int jiecheng(int n) {
if (n > 1) {
return n * jiecheng(n - 1);
}
return 1;
}
public static void main(String[] args) {
Csdn0714 a=new Csdn0714();
System.out.println(a.jiecheng(5));
}
}
输出结果如下:

5,静态方法
静态方法,调用执行不用全例化,可以根据类名.方法名()直接调用执行。 在方法内部可以直接调用静态方法,直接使用静态成员 类变量。
示例代码如下:
public class Csdn0714 {
//静态方法
public static void show() {
System.out.println("show...");
}
//非静态方法
public int re(int i){
return i*i;
}
public static void main(String[] args) {
//调用静态方法
System.out.println("------静态方法调用------");
show();
//调用非静态方法(需要实例化)
System.out.println("------非静态方法调用------");
Csdn0714 c=new Csdn0714();
System.out.println(c.re(5));
}
}
输出结果如下:

91



被折叠的 条评论
为什么被折叠?



