lyt0612

导航

2022-07-18 第八组 刘禹彤 学习笔记

打卡第9天

今天开始学习面向对象

 

 

###学习内容

1.java是一门面向对象的编程语言,在Java中,万事万物皆对象

(Linux中,万事万物皆文件)

2.面向过程和面向对象

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

其实,高级的编程语言,会向着人的思考靠近

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

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

例子:

我们准备去开一个·4s店,我们需要有车,需要有门店,怎样用代码去描述一辆车

  • 描述车的信息:描述信息的叫做属性,属性事实上从代码的角度就是变量

定义很多变量:1.brand 2.color 3.length .....

  • 描述好几个车(car1,car2...):要运用面向对象的思想,我们将一个汽车的多个属性尝试进行打包,这个过程实际上就是在封装对象

在java中,面向对象有3大特征:1.封装:造车,画图纸,根据图纸造,这个图纸是在描述车的信

息,对车的信息的封装

2.继承

3.多态

4.抽象

  • 创建对象的语法 : 类名 对象名 = new 类名()
  • 通过一个类创建多个对象,每个对象都是独立的,每个类只有一个但是这个类可以有很多实例

3. 内存空间

  1. 所有的类都是数据类型,都是引用数据类型
  2. class这个关键字,是创建一个类,用来创建一个数据类型
  3. 像car1,car2...叫引用,他是指向内存中的一块区域,存放他的空间叫做堆
  4. 两块内存空间:
  • 栈:变量,基本数据类型堆
  • 引用数据类型的初始值为null,只要有new,都不是null,他就有地址

4.成员方法:(JS里的函数)

  • 定义一个成员方法:(例)public void run()public:访问权限修饰符,后面讲

void:没有返回值

run():方法名,标识符

():方法体,这个方法要干什么

():传参数

  • 标识符的命名规则:字母,数字,下划线,美元符号,字母不能开头

1.类名:大驼峰

2.属性名。方法名:小驼峰

赋值时,除了string外,其余的引用类型赋值都要有new

  • 在声明方法时,括号里的参数,形式参数,形参,可以当作局部变量使用
  • 在调用方法时,真正传入方法的参数,实际参数,实参
  • 参数可以有多个,中间用,隔开

5.static

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

6.方法的重载

1.方法名相同

2.参数不同(参数的类型,参数的个数,参数的顺序

3.与返回值类型无关,与访问权限无关,与方法体无关

4.发生在同一类里

7.访问权限

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

8.构造器

构造器(构造方法

  • 语法:访问权限修饰符 类名(){}

特点:1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器,如果没有构造器,则无法创建对象

2.每个类会有一个默认的无参的构造器

3.在对象被实例化时,调用了构造器

4.我们创建对象实际上是通过构造器创建的

5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器失效

9.return

  • 返回值用return xxx表示
  • return关键字:

1.return关键字终止方法

2.返回方法的返回值

10.不定长参数

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

###学习心得

今天学习的内容有些抽象,不太好理解,上课有一些跟不上老师的进度,要利用下课时间补齐,相关的例子还需要多理解一下具体含义,课下还需勤加练习。

###掌握程度:一般

###练习:

package a;

public class Ch08 {
    /*写两个重载的方法
    * 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) {
        Ch08 c = new Ch08();
       int i = c.max(1,2);
        System.out.println(i);
        int j = c.max(1,2,3);
        System.out.println(j);
    }
}

代码结果;

 

posted on 2022-07-18 19:01  小仙女吖~  阅读(37)  评论(0)    收藏  举报