文章目录
0 前言
面向对象编程是一种编程范式,它把现实世界中的事物抽象为对象,对象具有属性和方法,属性表示对象的特征,方法表示对象的行为。对象之间可以通过消息进行交互。面向对象编程的优点是可以提高代码的复用性、可维护性和可扩展性。在本文中,我们将介绍面向对象编程的三个基本概念:对象、类和方法。我们将学习如何定义和创建类,如何通过类实例化对象,如何给对象添加属性和方法,以及如何调用对象的方法。
1 对象
1.1 万物皆对象
对象:看得见摸得着的物件
世界是由多个看得见摸得着的物件(对象)组成
1.2 身边的对象
身边看得见摸得着的物件都称之为对象
对象之间存在区别,是因为对象之间有着不同的静态的特征和动态的行为
1.3 对象的特征——属性
每个对象都有着各自的静态的特征,在计算机中称之为属性
每个属性都由两部分组成:属性名和属性值
1.4 对象的特征——方法
每个对象都有着各自的动态的行为,在计算机中称之为方法
每个方法都由两部分组成:方法名和方法体
1.5 对象实例
2 类
2.1 类的定义
1)多个对象之间的共同的特征(静态的属性和动态的方法)
2)类就是多个对象之间的共性
2.2 类和对象的关系
类是对象的抽象(模糊),对象是类的实例(具体)
3 创建类
/**
*①定义类
*②定义类的属性
*③定义类的方法
*/
public class User{ //public共有的修饰符 class类的关键字 User类的名称
//静态的属性
String name;//属性类型:属性名称;
//动态的方法
public void show(){//show代表方法名 void代表返回值的类型 ()代表方法的特殊标识
System.out.println(name);//方法体
}
}
4 创建对象
public static void main(String[] args){
//创建对象
User user = new User();
//为对象的属性赋值
user.name = "张三";
//调用对象的方法
user.show();
}
5 类的方法
5.1 语法结构
访问修饰符 返回类型 方法名(){
//方法的主体
}
5.2 方法的返回值
void 无返回值
基本数据类型 返回符合基本数据类型的值
5.3 方法的调用
1)在本类中调用方法方式
可以通过多个方法相互之间调用
在main方法可以调用该方法
2)在多类之间调用方法方式
main函数创建对象并调用
6 成员/局部变量
6.1 变量的作用域
变量之间存在作用域,作用域不一样,访问的权限就不一样
例如for循环中定义的变量不可被外部使用,而外部定义的变量可以被for循环使用
6.2 成员变量和局部变量
成员变量:在类中,方法外部定义的变量
局部变量:在方法内部定义的变量
6.3 成员变量和局部变量的区别
作用域不同
局部变量的作用域仅限定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
注:
在同一个方法中,不允许有同名局部变量
在不同的方法中,允许有同名局部变量
在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
7 带参数的方法
7.1 为什么要用带参数的方法
不同的方法结果是不一样的,为什么不一样,是由于参数的不一样导致结果不一样
7.2 定义带参数的方法
public class ZhaZhiJi {
//String fruit 形式参数(形参)
//形式参数的组成部分:参数的类型 变量
public void doIt(String fruit){
System.out.println(fruit+"汁");
}
public static void main(String[] args) {
ZhaZhiJi zhaZhiJi = new ZhaZhiJi();
//“苹果” 实际传递的值(实参)
zhaZhiJi.doIt("苹果");
}
}
7.3 数组作为参数
public class Student {
//求平均值
public double calAvg(int[] scores){
double sum = 0;
double avg;
for(int i = 0;i<scores.length;i++){
sum += scores[i];
}
avg = sum/scores.length;
return avg;
}
//求最大值
public int calMax(int[] scores){
int max = scores[0];
for(int i = 1;i<scores.length;i++){
if(scores[i]>max){
max = scores[i];
}
}
return max;
}
public static void main(String[] args) {
int[] scores = new int[]{213,324,64,865,324};
Student student = new Student();
System.out.println("平均值为"+student.calAvg(scores)+"\n最大值为"+student.calMax(scores));
}
}
7.4 对象作为参数
public class Student {
String name;
String pwd;
public void add(Student student){
this.name = student.name;
this.pwd = student.pwd;
}
public static void main(String[] args) {
Student student = new Student();
Student student1 = new Student();
student1.name = "baba";
student1.pwd = "8888";
student.add(student1);
System.out.println(student.name+"***"+student.pwd);
}
}
8 包
8.1 为什么需要包
可以让同名的类出现在工程中
8.2 创建包
关键词:package
包都放在类的第一行
包的关键词是package
包的结束字符是;
8.3 包的命名规范
包由小写字母组成
一般前缀是公司的域名的缩写
8.4 导入包
1)导入系统包中的某个类
import java.util.Scanner
2)导入自定义包中的某个类
import com.zlt.User
3)导入某路径下的包的所有类
import com.zlt.*