其他分享
首页 > 其他分享> > 2022-7-18 第二小组 张鑫 学习笔记

2022-7-18 第二小组 张鑫 学习笔记

作者:互联网

实训第十天 面向对象

1.学习重点

1.面向对象

2.引用数据类型

3.成员方法-递归

4.方法的重载

5.访问权限

6.构造器

7.类与类的关系


2.学习心得

开启面向对象的学习,我感觉难度提升了一大截,知识点比较杂比较散,而且理解起来很抽象。所以吸收的还不是很好,昨天的考试也发现了很多不足,虽然之前老师说过有些知识了解即可,但是还是有同学能打接近满分,压力好大啊,不能够放弃!


3.学习内容

面向对象

Java是一门面向对象的编程语言。

面向过程和面向对象

面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。
面向对象(行为化):把整个需求的按照特点、功能划分,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题

面向对象更高级的抽象,是对现实世界的映射。

String,Scanner。我们在使用Scanner时候,从来没有考虑过Scanner为什么能键盘输入?
这就是别人给我们创建的对象,事实上我们也能自己创建对象,在开发中,基本上我们会大量的自己创建自己的对象

在Java中,面向对象有3大特征:
1、封装
2、继承
3、多态
4、抽象

创建对象的过程,类的实例化的过程,对象又叫做类的一个实例

对象名的命名规则:小驼峰
创建对象的语法:类名 对象名 = new 类名();


引用数据类型

之前学习过8种基本数据类型
所有的类都是数据类型,除了基本数据外都是引用数据类型。
此刻起,我们才真正了解了class这个关键字,创建一个类,用来创建一个数据类型。

像car1,car2,car3....car100叫引用,它是指向内存中的一块区域。存放这些对象的空间,我们叫做堆。

我们需要了解两块内存空间:
1、栈:变量,基本数据类型
2、堆

引用数据类型的初始值为null
赋值时,除了String外,其余的引用数据类型都需要new
只要看见了new,就不是null,它就有地址


成员方法-递归

自己调自己-递归
递归的问题:StackOverflowError 栈溢出 内存溢出

封装:1、代码层面 2、思想层面

如果把变量直接声明在类里:成员变量(全局变量)
如果把变量声明在某个方法里:局部变量
成员变量->属性

定义一个成员方法

public:访问权限修饰符,后面讲
void:没有返回值
run():方法名,标识符
{}:方法体。这个方法要干什么
():传参数

在声明方法时,括号里的参数,形式参数,形参,可以当做局部变量使用
在调用方法时,真正传入方法的参数,实际参数,实参。
参数可以有多个,中间用逗号隔开
Java中的传参,需要明确数据类型

有返回值的方法

public
boolean:返回值类型。我这个方法经过一系列的运行过后,要得到一个具体的值
这个值,返回值,返回值的类型是boolean
返回值用return xxx;类型要匹配

return关键字:

1.return关键字终止方法继续执行。
2.返回方法的返回值

如果一个方法有static
要调用一个非static的方法
就只能创建对象,使用对象.方法的形式调用


方法的重载

1.方法名相同
2.参数不同(参数的类型,参数的个数,参数的顺序)
3.发生在同一个类里
与返回值类型无关,与访问权限修饰符无关,与方法体无关
方法的重载的好处:
为了把功能相似相同的方法用同一个名字

案例

写两个重载的方法
1.一个方法求两个数的最大值
2.另一个方法求三个数的最大值

代码:

public int max(int num1,int num2) {

        return num1 > num2 ? num1:num2;
    }

    public int max(int num1,int num2,int num3){
        int a = (num1 > num2 ? num1 : num2);
        return a > num3 ? a : num3;
    }

    public static void main(String[] args) {
        Ch03 c = new Ch03();
        c.max(1,2,3);
    }

不定长参数

1.参数列表中,至多有一个不定长参数
2.不定长参数必须在最后位置
public int sum(String d,int ... arr){
        int result = 0;
        if(arr.length < 2){
            result = arr[0];
        }else {
            for (int i : arr) {
                result += i;
            }
        }
        return result;
    }

访问权限

public:一个工程下任意位置都可以访问
        类,属性上,方法上,构造器
protected:可以跨包,如果跨包,必须是他的子类
        属性,方法,构造器
(默认的):当前包下可以访问
        类,属性,方法,构造器
private:只有当前类可以访问
        属性,方法,构造器

构造器

构造器(构造方法)
语法:
访问权限修饰符 类名(参数列表){
}

特点:
1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器。
如果没有构造器,则无法创建对象
2.每个类会有一个默认的无参的构造器
3.在对象被实例化时,调用了构造器
4.我们创建对象实际上是通过构造器创建的
5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效

类与类的关系

has a关系

标签:int,张鑫,数据类型,构造,面向对象,参数,2022,18,方法
来源: https://www.cnblogs.com/zxscj/p/16492157.html