1.面向对象编程的概念
1)万物皆是对象
2)指以属性(特征)和行为的观点去分析现实生活中的事物【首先对特征和行为进行分析】
面向对象编程
3)先对面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程
4)C:面向过程 C++:面向过程+面向对象 Java:纯粹的面向对象;
面向过程:布置任务,取上课,各个时间段干啥,就是所有的过程以及步骤;
面向对象:我是个对象,分析特征(熟悉,是否具备讲师特征,讲课的行为是否具备)明天你就去给xx接课
5)产业发展的需求
6)三大精髓封装、多态、继承
2.类和对象的概念
1)对象:现实客观存在的实体,java中体现为内存空间中的一块cun
2)类:分类,具有相同特征和行为的多个对象共性的抽象描述,在java中语言种体现为一种引用数据类型,里面包含描述特征/属性的成员变量以及描述行为的成员方法;
3)类是用于构建对象的模版,对象的数据结构由定义他的类决定
4)类的定义:
class 类名{
类体
}
类名有多个单词,应首字母大学,即”驼峰命名法“
5)成员变量的定义
数据类型 成员变量名 = 初始值;
规定:成员变量有多个单词组成,通常从第二个单词的首字母大写
6)对象的创建
new 类名();
本意:类定义完成后,用new关键字创建该类的对象,这个过程话叫类的实例化;
实质:创建对象的本质是在内存空间的堆区申请一块存储区域,存放该对象独有的特征信息;
7)引用的定义
基本概念:
a.使用引用数据类型定义的变量,简称引用
b.引用变量主要用于记录对象在堆区中的内存地址信息,便于访问
语法格式:
类名 引用变量名;
引用变量名.成员变量名;
8)案例题目
eg1:
class Person(){
String name;
}
new Person();
eg2:
Person p = new Person();
p.name = “我是你”;
sout(p.name);
9)Person类代码执行流程
ps:小编的画图水平并不高,敬请见谅!!!
3.成员方法的定义
1)内部的内容
2)class 类名{
返回值类型 成员方法名(形参列表){
成员方法体;
}
}
成员方法由多个单词组成是,要求从第二个单词起每个单词的首字母大写。
3)返回值类型:返回值的数据类型,可以为基本数据类型,也可引用数据类型(方法体内返回方法体外,使用return,遇到return方法结 束)
4)形参列表:多个形参,数据从方法体外-> 方法体内,无初始值。
5)成员方法可以实现代码重用,简化代码。
6)成员变量与成员方法在同一个类中,成员方法可以访问成员变量
7)实参对形参进行初始化操作,个数、类型、顺序都要完全一致,可以传直接量、变量、表达式、
8)调用方法的本质是根据方法名跳转过去执行方法在这个位置
9)有参无返回值的成员方法的使用
package com.lagou.module1.prject2;
//降低了代码的耦合性,即代码的解藕合
public class Person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//定义成员变量
//人的特征,姓名
String name;
int age;
//以参数的形式传入姓名和年龄
//开发中使用的最多的是单独的模式,改一个都要改,比较麻烦
void setNameAge(String name,int age){
this.name = name;
this.age = age;
}
void show(){
System.out.println("我是"+name+",今年"+age);
}
void showall(int... args){
for(int i = 0;i < args.length;i++){
System.out.println("i的值是"+i+args[i]);
}
}
public static void main(String[] args) {
//声明person对象只想person类
Person p = new Person();
//打印对象中的成员变量值;
//引用变量名 成员变量名
System.out.println("我是"+p.name+",今年"+p.age);
//引用数据类型默认值是null,基本数据类型默认是0
System.out.println("------------------------------------------------------");
p.name = "章三";
p.age = 38;
System.out.println("我是"+p.name+",我的名字是"+p.age);
System.out.println("------------------------------------------------------");
p.setNameAge("关羽",40);
p.show();
p.showall(1,2,3,4,5,6);
}
}
4.可变长参数的使用
参数的长度可以发生改变
返回值类型 方法名(参数的类型 ... 参数名),参数个数可变,参数包含固定也包含可变长参数,则可变长放在列表末尾
自定义成员变量使用可变长参数,当成一位数组使用
void showall(int... args){
for(int i = 0;i < args.length;i++){
System.out.println("i的值是"+i+args[i]);
}
5.成员变量与局部变量之间的区别
1)声明位置不同:成员变量是写在累的内部,方法体的外部。局部变量是方法体内部的
2)作用域不同:成员变量声明开始到类体结束,局部变量是从声明开始到方法体结束
6.方法传参的过程
7.参数传递的注意事项
1)基本数据类型:作为形式参数时,形参变化不影响实参变化,分别存储在不同的内存块
2)引用数据类型:作为形式参数时,形参变化影响实参变化,因为引用数据类型传递的是堆内存地址,存储在同一块内存区域
3)引用数据类型:作为形式参数时,形参指向发生改变后,数值改变不影响实参变化,因为引用数据类型传递的是堆内存地址,不存储在同一块内存区域
喜欢本文的朋友们,欢迎长按下图关注订阅不得不说叔,收看更多精彩内容