java基础学习笔记——day08(面向对象,构造器,this、static)

反激变压器设计学习笔记 反激变压器匝比感量设计 阅读详情

java基础学习笔记——day09

第三章——面向对象

1. 面向对象和面向过程

这里用人开车的例子说明:

  • 面向过程: 人开车,人是一个对象,车是一个对象,我们只需要知道,人有开车这个功能,车有被开这个功能,我们不需要知道人是怎样开车的,车是怎样组成的或者被开的,只要知道人开车能到目的地就行

  • **面向过程:**人开车,人是怎样开车的我们要知道怎样开车的(考驾照,买车,上车,点火,启动,踩离合,踩油门……),里面我们每一步都要划分成详细的一个一个过程,这就是面向过程

  • 面向过程和面向对象的区别:

    1. 针对小问题,面向过程是解决办法。但是面对一些复杂问题时,面向过程显然力不从心。面向过程是微 观上解决问题的方式,管得太多了。
    2. 面向对象是解决问题的另外一种方式,针对一些简单问题有点大材小用,针对复杂问题就变得极其轻 松。面向对象是从宏观上把控事务的整体走向。管的太少了。
    3. 面向对象和面向过程不是相互独立的而是相互依存的。通过面向对象去从整体上思考问题的大致方向, 但是后实际解决的过程中还是通过面向过程去执行的。
  • 编码的过程中而言,存在一个需求,先从宏观上整体看待需求,再从微观上去实际编码解决问题。

2. 对象

2.1 什么是对象
  • 在java中万事万物都是对象(人,电脑,杯子,鼠标)

    • 人能吃饭,跑步;电脑能完游戏,敲代码;杯子能装水;鼠标能帮助我们控制电脑

    • 对象对应了相应的功能,我们不需要知道这些功能是怎样来的,怎样实现的我们只需要知道他们有这个功能,并且能拿来用就行了,这就是对象

  • 面向对象大好处和魅力也在于此,就是减低了使用者的使用复杂度,提高了被使用者的安全 度。

2.2 类和对象的关系
  • **类:**类就是将具有相同特征的许多事物归为一种类别

  • **对象:**对象就越是类具体事务的体现

  • 比如,鸟类就是一个类,里面的对象有啄木鸟(啄木),老鹰(抓小鸡),喜鹊(报喜)

在java中的类和对象:

  • 类:class修饰的 一个类可以产生很多个对象。
  • 对象:基于类的一个实例化的表现形式
  1. 类的产生是依赖于对象的,类是将对象中相同特征或者是行为抽取出来归为一类
  2. 对象的产生是依赖于类的,如果没有类是无法产生该类的对象的,该类的实例
  3. 类是对于对象的抽像(抽取像的部分),对象是类的具象化的表现形式。

3. 如何编写类和对象

3.1 编写类
  • 类是为了产生对象的,而对象存在的本质是为了能够帮助我们去实现一个具体的业务。对象对于使用者 而言,能够知道的有
    1. 外在的表现形式:姓名、性别、身高、体重、籍贯 : 通过成员变量来实现的
    2. 内在的功能:能力:能够做什么:吃饭、睡觉、打豆豆、买烟、开车: 通过方法实现的
    3. 成员变量也好、方法也罢都是非静态修饰的
public class Person{
    String name;//外在属性:名字、性别、年龄
    char gender;
    int age;
    public void eat(){ //人能吃饭
        System.out.println("吃饭");
    }
    public void sleep(){//人会睡觉
          System.out.println("睡觉");
    }
}
3.2 编写对象
  • java中通过new关键词来产生当前类的一个具体的实例、对象。

  • 语法:

    类名  变量名 = new  类名();
public class PersonText{
    public static void main(String[] args){
       Person p = new Person();
        p.eat();
        p.sleep();
        System.out.println(p.name);
    }
}
  • 输出结果:
吃饭
睡觉
null
  1. 类是一个引用类型,我们定义的所有的类都是一个自定义的数据类型,这些数据类型都是引用类 型。
  2. 凡是引用类型在创建对象时必须通过使用 new 关键词来创建。
  • new关键字的作用:
    1. 开辟空间:在堆内存中开辟一个空间
    2. 赋初始值:给类中的成员变量赋初始值
    3. 指向引用:在新创建的变量中存储一个开辟的堆内存的地址

4. 构造器

4.1 什么是构造器
  • 构造器就是java中用来产生对象的特殊方法 ,这个特殊方法就是类中的一个构造器
4.2 构造器的声明
4.2.1 无参的构造器
public class 类名{
    //创建一个无参构造器
    public 类名(){
        构造器中的执行语句;
    }
}
  • 构造器的方法名要和类名一致
  • 构造器方法没有返回值

注意事项:

  • 在一个类中,如果没有创建任何一个构造器,呢么java会自动填充一个空参数的构造器(在代码中看不见)
4.2.2 带参数的构造器
public class 类名{
    String name;
    int age;
    //创建一个带参构造器
    public 类名(String yname){
        name = yname;//构造器中的执行语句;
    }
}

测试:

class Person{
    String name;
    int age;
    //创建一个带参构造器
    public Person(String yname){
        name = yname;//构造器中的执行语句;
    }
}
public class PersonText{
    public static void main(String[] args){
       Person p1 = new Person("小王");
       Person p2 = new Person("小李");
       Person p3 = new Person("小刘");
        System.out.println(p1.name);
        System.out.println(p2.name);
        System.out.println(p3.name);
    }
}

结果:

小王
小李
小刘
  • 注意
    • 如果一个类中存在带参构造器,那么无参构造器如果不显示编写,则不存在。如果显示编写,则还 有。
    • 构造器也存在重载。

5. this 关键字

5.1 什么是this
  • 代表的是当前对象的。谁在调用谁是当前对象。
  • 大多数情况下this.都是可以省略的
  • 当出现了同名的变量时,this.是不可以省略的。此时this.的作用是用来区分同名变量。
5.2 this的使用
  • this关键词,一共有两种用法,称之为 this. 和 this()
  • this. :当出现了同名的变量时,this.是不可以省略的。此时this.的作用是用来区分同名变量
 class Person{
    String name;
    int age;
    //创建一个无参构造器
    pubilic Person(){
        this.eat();//用this.  调用该类的eat()方法
    }
    //创建一个带参构造器
    public Person(String name,int age){
        this.name = name;// this. 用来区分同名变量
        this.age=age;
        //如果不适用this. 那么java就无法区分两个同名变量				name和age,就会报错
    }
    public void eat(){
        System.out.println("吃饭了");
    }
}
public class PersonText{
    public static void main(String[] args){
      //调用无参构造器
        Person p1 = new Person(); 
        System.out.println(p1.name);
      //调用有参构造器  
        Person p2 = new Person("小李",18); 
        System.out.println(p2.name);
        System.out.println(p2.age);
    }
}

结果:

吃饭了
null
小李 
18
  • this() :用来实现构造器之间的互相调用。
class Person{
    String name;
    int age;
    //创建一个无参构造器
    pubilic Person(){
        this("小李",18);//通过this() 调用了带参构造器
    }
    //创建一个带参构造器
    public Person(String name,int age){
        this.name = name;
        this.age=age;
    }
    public void eat(){
        System.out.println("吃饭了");
    }
}
  • this() 作用
    • 实现了构造器之间的相互调用
    • 其他方法中不能使用this(),只能在构造器中使用
    • 必须保证this()在构造器的第一行

6. static 关键字

6.1 含义
  • static的意思是: 静态的 共享的
  • 通过static修饰的方法、类、就是静态的方法、类
6.2 static的使用
  • 在static中使用static修饰的
public class Person{
    static int num=10;
    public static void main(String[] args){
        System.out.println(num); //直接访问
    }
}
  • 在static中使用非static修饰的
public class Person{
    int num=10;
    public static void main(String[] args){
        Person p =new Person();
        System.out.println(p.num); 
        //通过创建对象访问
    }
}
  • 在非static中使用static修饰的
public class Person{
    static int num=10;
    public static void main(String[] args){
        Person p =new Person();
        p.method();
    }
    public void method(){
         System.out.println(num); //直接变量名和方法名访问
    }
}
  • 在其他类中访问静态内容可以直接通过类名.方法名/变量名直接访问
  • 静态内容在其他类中访问时可以通过类名直接 . ,也可以通过对象 . (不推荐使用)
public class Test{
    public static void main(String[] args){
        System.out.println(Person.num);
    }
}
6.3 注意事项
  • static修饰的内容是隶属于类的,类被加载,静态内容就被加载到内存中了。
  • 非static修饰的内容是隶属于对象的,对象存在,非static的内容才能被调用。
  • 类信息是先于对象存在的。创建对象时类一定被加载到内存中了,但是如果类被加载到内存中,对 象不一定存在。
华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】 在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况: 阅读详情

相关推荐

手把手教你学Simulink——基于Simulink的轮毂电机独立驱动转矩矢量分配

阐述了轮毂电机独立驱动的核心价值与转矩分配的必要性在 Simulink 中实现了完整的“上层稳定控制 + 下层最优分配”架构对比了三种分配策略在极限工况下的性能差异提供了工程落地的关键考量特斯拉 Cybertruck(后轮双电机矢量控制)Rivian R1T(四电机坦克掉头)宝马 iX(精准牵引力控制)核心思想“以软件定义底盘,以算法驾驭动力;化四轮之独立,为整车之协同。—— 让汽车在极限边缘依然从容不迫。

MHD0815的博客 368

day_05_java_面向对象_四种权限_this_构造器_get/set_import

四种权限:(由低到高)实现高内聚、低耦合 prviate 缺省 protected public 构造器:construct 作用: 创建对象 初始化属性 public class Animal { public static void main(String[] args) { AnimalLegs p = new AnimalLegs(); 对象类型 +名称 = new+构造器 此处AnimalLegs()即为构造器。 若没定义构造器,则系统默认定义空构造器。

yangsen116291的博客 264

WPS占用C盘空间解决方案与优化技巧

办公软件在长期使用过程中会产生大量缓存和历史文件,这些文件往往隐藏在系统目录中,导致磁盘空间被无声占用。以WPS为例,其版本历史备份、云同步缓存和模板库是主要空间占用源。通过分析文件存储机制,可以定位到具体的缓存路径,如AppData目录下的Kingsoft文件夹。针对这一问题,有效的解决方案包括手动清理、自动化脚本和注册表优化。对于需要持续监控的场景,可以结合PowerShell脚本和任务计划实现自动化管理。在实际应用中,这些技术不仅适用于WPS,也可迁移到其他办公软件的空间优化中,是每位IT运维人员和高

weixin_30788239的博客 455

Java基础知识day05--面向对象编程

JAVA+AI基础知识学习;面向对象编程篇

m0_74181321的博客 1998

MATLAB锂离子电池伪二维(P2D)模型实现

锂离子电池伪二维(P2D)模型的MATLAB实现。该模型基于Newman等人提出的经典电化学模型,考虑了固液相扩散、电荷守恒和电化学反应动力学。

hie98894的博客 1928

机器学习篇-KNN算法实现鸢尾花模型和手写数字识别模型

一个样本最相似的k个样本中的大多数属于某一个类别, 则该样本也属于这个类别类似于: 近朱者赤近墨者黑回归机器建模流程:数据获取数据基本处理(空值和非法值)特征工程(特征提取, 特征预处理(归一化, 标准化), 特征降维, 特征选择, 特征组合)模型训练模型预测模型评估# 1. 定义函数 dm01_load_iris(), 用于加载 鸢尾花数据集, 并简单查看下数据集的各部分.# 1. 加载数据集.​# 2. 打印iris_data, 发现其实是1个: 字典.​。

m0_60916732的博客 2403

Day08-面向对象-封装

Java是一种计算机程序设计语言。所有的计算机程序一直都是围绕着两件事在进行的,程序设计就是用某种语言编写代码来完成这两件事,所以程序设计语言又称为编程语言(编写程序的语言)。如何表示和存储数据基本数据类型的常量和变量:表示和存储一个个独立的数据对象:表示和存储与某个具体事物相关的多个数据(例如:某个学生的姓名、年龄、联系方式等)数据结构:表示和存储一组对象,数据结构有数组、链表、栈、队列、散列表、二叉树、堆…基于这些数据都有什么操作行为,其实就是实现什么功能数据的输入和输出。

qq_52807258的博客 984

3、基于视觉的智能分拣机:原理、算法与应用

本文介绍了一种基于视觉的智能分拣系统,利用树莓派、相机模块和多种检测算法实现低成本、高精度的物体分拣。系统支持颜色、形状和尺寸三种检测方式,准确率达99%,广泛适用于制造业、农业和物流等领域。文章详细阐述了各检测算法原理、测试结果及系统优化方向,并探讨了其实际应用案例与未来发展前景。

mqtt6iot的博客 236

Day07 面向对象 构造器 this static

一 面向对象 1.面向对象和面向过程之间的区别: 面向对象和面向过程都是一种编程思想|思维方式 面向过程:"我应该怎么做?"然后一步一步完成 面向对象:"我应该让谁来完成?"对象如何实现功能不关注,我只关注这个对象 面向对象是依托于面向过程的 2.面向对象的优点: 1.更贴近于现实生活中人类的思维方式 2.面向过程体现在执行者,面向对象体现在管理者 3.将复杂的问题简单化 3....

weixin_44695396的博客 152

安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案

本文主要介绍了安装Codex时出现无法下载此应用和Microsoft Store初始化失败的解决方案,希望能对使用codex的同学们有所帮助。 文章目录 1. 问题描述 2. Windows 解决方案 3. Mac解决方案

weixin_43178406的博客 7万+

【C语言趣味教程】(0) 专栏介绍

这是一套C 语言趣味教学专栏,目前正在火热连载中,欢迎猛戳订阅!本专栏保证篇篇精品,继续保持本人一贯的幽默式写作风格,当然,在有趣的同时也同样会保证文章的质量,旨在能够产出"有趣的干货" !本系列教程不管是零基础还是有基础的读者都可以阅读,可以先看看目录!标题前带星号 (*) 的部分不建议初学者阅读,因为内容难免会超出当前章节的知识点,面向的是对 C 语言有一定基础或已经学过

有道无术, 术尚可求。有术无道, 止于术。 2万+

Java面向对象

如果父类没有无参数构造器,我们必须在子类构造器的第一行手写super(...),指定去调用父类的有参数构造器。访问多个其他包下的程序,这些程序名又一样的情况下,默认只能导入一个程序,另一个程序必须带包名和类名来访问。可以解决类单继承的问题,通过接口,我们可以让一个类有一个亲爹的同时,还可以找多个干爹去扩展自己的功能。子类的对象由子类、父类共同完成的,子类、父类对外暴露什么成员,对象就可以访问什么成员。任意类的构造器中,是可以通过this(...)去调用该类的其他构造器的。

m0_73557953的博客 1846

dex2oat编译优化调试

dex2oat编译调试的一些技巧和方法

jidapenglin28的专栏 5045

JAVA语法基础 day05-面向对象

类定义好了之后,再新建一个文件,创建具体的对象。

fieldsss的博客 549

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

从零开始学Java Day05 面向对象编程

在程序中的数据存储,我们可以利用变量、数组、二维数组以及对象进行存储。对象也是一种存储数据的存储方式。例如要存彭于晏的数据:1.先设计对象的模板,也就是对象的设计图:类。

Babe_e的博客 1644

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java基础学习day07(面向对象、static关键词、this关键词、super关键词)

java基础学习day07(面向对象、static关键词、this关键词、super关键词) 第一章 面向对象 1.1 什么是面向对象? 1.1.1 面向对象和面向过程的区别 1.面向对象:就拿人开车来说,在人开车这个实例中,人和车就是两个对象,人负责开车,车负责被开,在这里我们只看车子能不能开动,只要具备车有开的的功能,然后人有会开车的功能,车子就能开动,这里不用去管车子如何开动,人如何去开车的...

sosothing的博客 230

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JAVA学习笔记- - - day 2

目录💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长💕封装(重点)数组一维数组(重点)二维数组方法的重载(重点)this关键字(重点)构造器(重点)默认构造器有参构造器static关键字(重点)属性上(静态属性/变量)方法上(静态方法)静态代码块设计模式(重点)单例。

m0_71956038的博客 5万+

Day07-面向对象-封装

Java是一种计算机程序设计语言。所有的计算机程序一直都是围绕着两件事在进行的,程序设计就是用某种语言编写代码来完成这两件事,所以程序设计语言又称为编程语言(编写程序的语言)。如何表示和存储数据基本数据类型的常量和变量:表示和存储一个个独立的数据对象:表示和存储与某个具体事物相关的多个数据(例如:某个学生的姓名、年龄、联系方式等)数据结构:表示和存储一组对象,数据结构有数组、链表、栈、队列、散列表、二叉树、堆…基于这些数据都有什么操作行为,其实就是实现什么功能数据的输入和输出。

小丁的博客 945

day25 Java基础——面向对象两万字详解!(纯干货)

1. 类与对象的关系2. 创建与初始化对象3. 构造器详解4. 创建对象内存分析5. 简单小结类与对象6. 封装详解7. 继承8. 多态9. static详解10. 抽象类11. 接口的定义与实现12. 内部类

Qhumaing的博客 1679

Java-Day5-面向对象编程

对于静态变量,也就是说,带有static的静态变量是属于类的,而类是设计对象的设计图,我们类有,对象一定有,就跟家族(类)和个人(对象)一样,家族有姓氏,那么个人一定有。3、对象是一个真实世界的实体,,如笔,手机,床,键盘,鼠标,椅子等;为啥呢,你想想this的作用是啥,哪个对象调用发放,this就是哪个对象,所以this就是跟对象有关系的,那么我们静态方法是不需要对象的,没有。这个姓氏,而不带static就是实例变量,这个变量赋予对象是属于对象自己的变量,比如个人的身高,跟家族没关系9。

fsfsgfsggfg的博客 954

JAVA基础学习——Day10(类的this和static)

JAVA基础学习——Day10(类的this和static)

LengchenAl的博客 865

day05-面向对象编程:基础语法

Java面向对象:类的基础语法 [ 任务列表 ] 1.面向对象快速入门 2.什么是面向对象 3.类的基础语法——构造器 4.类的基础语法——this关键字 5.类的基础语法——封装 6.类的基础语法——javabean 7.类的基础语法——static 8.其他 ——————————————————

fenfenfen520a的博客 65

java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static

java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ 【P175】 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Student { String name;//姓名 private int age;//年龄 privat使年龄age不能被直接引用,这样用户就只能通过我们给的方法来给age进行赋值了 public void show() { System.out.pr

时雨的博客 419

java基础进阶学习笔记Day01(黑马磊哥课程)

静态变量在内存中只有一份分为:静态方法(类方法)和实例方法:成员变量,构造器,方法,代码块,内部类。

wangwangxiaohai的博客 407

Java基础笔记:Day_06 类、构造器和面向对象

一、对象与类 1.对象与类的关系 对象:对象是人们进行研究任何事物,一切事物都可认为是对象。对象具有状态和行为。 类:具有相同特性(状态)和行为(功能)的对象的抽象就是类。 一句话:对象的类的个性,类是对象的共性。 在面向对象编程里,我们肯定是先有类的。 如果没有类,对象就没法实例化。对象是类的实例,类是对象的模板。如下图,我们可以在类中找到对象的共性,如姓名年龄,以及他们的行为,但是对象是个例。...

PandaNotPan的博客 305

从零开始学Java,学习笔记Day08

构造方法,this,private,封装,分包,static,静态属性,静态方法,静态代码块。

qq_51876888的博客 370
上一篇: java基础学习笔记——day07(方法、方法的重载、递归、成员变量、局部变量)
TTHplus
博客等级 码龄7年 36粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值