2022-07-18 第四小组 孙翰章 学习笔记

JAVA4


JAVA是一种面向对象的编程语言,在JAVA中万事万物皆对象(在linux中,万事万物皆文件)

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

高级的编程语言,会向着人的思考靠近。
面向对象是更高级的抽象,是对现实是世界的映射。

在JAVA中,面向对象的三大特征:封装、继承、多态(要是四个有 +抽象)


1.4种访问修饰符

public共有的、公共的 、最大 。只要public声明的方法,只要在文件里都可以用
protected受保护的
default(默认的)友好的
private私有的,只有在当前类里才能用
访问权限:
public

一个工程下任意位置都能呈现。

可以放在、类、属性、方法、构造器上

protected

可以跨包。

如果跨包,必须是它的子、 属性、方法、构造器

默认的(default)

当前包下可以访问

类、属性、方法、构造器

private

只有在当前类里才能访问

属性、方法、构造器


2.成员方法

(1)成员方法:(JS里是函数)
定义一个成员方法 例:public void run(){}
        public:访问权限修饰符
        void:没有返回值
        run():方法名:标识符
        {}:方法体,这个方法要干什么
        ()里面可以传参数

#在声明方法时()里的参数,形式参数(形参),形参可以当局部变量使用
#在调用方法时,真正传入方法的参数叫实际参数(实参)

(2)参数可以是多个,中间用“,”隔开       JAVA中的传参需要明确数据类型

(3)开发中大部分的方法都是有返回值的

public boolean run1(int gasoline) {
        if (gasoline == 95) {
            System.out.println(brand+"在快跑");
            return true;
        } else if (gasoline == 92) {
            System.out.println(brand+"在跑");
            return true;
        } else {
            System.out.println("假油");
            return false;
        }
}

这是有返回值的方法
        boolean:返回值类型
        返回值:return xxx 需要匹配类型
        return关键字:
                a:return关键字是终止方法继续执行
                b:返回方法的返回值


3.创建对象

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

Car car1 = new Car();
//给车的属性赋值
car1.brand = "奥迪";
car1.color = "白色";
car1.length = 5;
//去除属性的值
System.out.println("第一台车,属性为:"+car1.brand+car1.color+car1.length);

//对象 方法名
car1.run(95,"米其林");
//有返回值的方法在执行后会得到一个具体的值,这个值可以保存下来
car1.run1(92);
boolean b = car1.run1(92);
System.out.println(b);

我们创建了一个Car的对象car1
car1就是对象的名
对象名的命名规则:小驼峰
创建对象的语法:类名 对象名 = new 类名()


5.封装

从两个层面考虑封装:1.代码层面 2.思想层面

如果把变量直接声明在类里,则是成员变量
如果把变量声明在方法里,局部变量


6.递归

方法名不能重复 自己调用自己就是递归
(1)递归问题:StackOverflowError 栈溢出 内存溢出

public static void main(String[] args) {
        Ch02 c = new Ch02();
        c.run();
}
public void run(){
        run();
}

(2)斐波那契而数列

public int fibonacci(int number){
    if (number == 1 || number == 0){
            return number;
    } else {
        return  fibonacci(number - 1) + fibonacci(number -2);
    }
}
public static void main(String[] args) {
    Ch02 c = new Ch02();
    c.fibonacci(5);
    System.out.println(c.fibonacci(5));
}

我们知道除了0和1,第number个数字,等于第number-1和第number-2个数的和

(3)阶乘


7.方法的重载(Overload)

(1)特点

a:方法名相同
b:参数不同(类型不同、个数不同、顺序不同)
c:发生在同一个类里

#方法的重载与返回值类型无关 与访问权限修饰符无关 与方法体无关

(2)好处

把功能相似、甚至相同的方法都叫同一个名字

public class Ch03 {
    public void max(int a,int b){
        if (a > b){
            System.out.println("最大的数是:"+a);
        } else if (b > a) {
            System.out.println("最大的数是:"+b);
        } else {
            System.out.println("两个数相等");
        }
    }
    public void max(int a,int b,int c){
        if(a >= b && a >= c){
            System.out.println("最大的数是:"+a);
        } else if (b >= a && b >= c) {
            System.out.println("最大的数是:"+b);
        } else {
            System.out.println("最大的数是:"+c);
        }
    }

    public static void main(String[] args) {
        Ch03 c = new Ch03();
        c.max(3,4);
        c.max(5,6,7);
    }
}

#不定长参数

int ... arr
1.参数列表中至多有一个不定长参数
2.不定长参数必须在最后的位置

    public int sum(int ... arr){
        int result = 0;
        if(arr.length < 2){
            result = arr[0];
        }else {
            for (int i : arr){
                result += i;
            }
        }
        return result;
    }

8.构造器(构造方法)

(1)语法:

       访问权限修饰符 类名(){

        }
(2)特点:

a.JAVA在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器
    如果没有构造器,则无法创建对象
b.每个类会有一个默认的无参的构造器
c.在对象被实例化时,调用了构造器
d.我们创建对象实际上是通过构造器创建的
e.如果一个类中显示的声明了一个构造器,那么原来默认自带的无参构造器就失效


所学知识还需熟练理解,递归问题理解欠佳,其他方面能够很好的理解,熟练掌握还需要一个阶段

早晨天气晴 晨跑 羽毛球 继续锻炼

晚天气阴雨 心情尚佳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值