活动地址:CSDN21天学习挑战赛

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

1、面向对象介绍

面向对象并不是一个技术,而是一种编程指导思想。它把现实世界的具体事物全部看成一个一个对象来解决问题。

我们为什么要使面向对象编程呢?

生活中我们解决问题就是按照对象化的方式进行的。如果程序也能按照生活中的方式来解决问题,那么程序就更符合人类的思维习惯,代码看起来会更易理解、更简单。

获取已有对象并使用

public class Test {public static void main(String[] args) {// 1、得到一个随机数对象,用于得到随机数Random r = new Random();int data = r.nextInt(10) + 1 ; // 生成 1-10之间的随机数System.out.println(data);// 2、创建一个扫描器对象,用于接收用户输入的数据Scanner sc = new Scanner(System.in);System.out.println("请您输入您的年龄:");int age = sc.nextInt();System.out.println(age);}
}

2、类与对象

类:

类(Class)是人脑对于若干具有相同(或相似)属性和行为的对象的抽象。是对一类事物的描述,是抽象的,概念上的定义。

对象:

对象(Object)是人们要研究的具体事物,是实际存在的该类事物的每个个体,因此也称为实例(instance)。

类的实例化,即创建类的对象。

注意事项:

  • 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。
  • 类名首字母建议大写,且有意义,满足“驼峰模式”。
  • 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
  • 实际开发中建议还是一个文件定义一个class类。
  • 当堆内存中的 类对象数组对象 ,没有被任何变量引用(指向)时,就会被判定为内存中的 “垃圾”。
  • Java存在自动垃圾回收器,会定期进行清理。

3、构造器(构造方法)

构造器的作用:用于初始化一个类的对象,并返回对象的地址。

初始化对象的格式:   类型  变量名称 = new 构造器

Car car = new Car();

构造器分为有参构造器和无参构造器

无参构造器:

是默认存在的,初始化对象时,成员变量的数据均采用默认值。

有参构造器:

在初始化对象的时候,同时可以为对象进行赋值。

注意事项:

  • 任何类定义出来,默认就自带了无参数构造器,写不写都有。
  • 一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写一个无参数构造器了。

4、this关键字

作用:出现在成员方法、构造器中代表当前对象的地址,用于访问当前对象的成员变量、方法。

this出现在有参构造器中的用法:

public class Car {String name;double price;public Car(String name , double price){this.name = name;this.price = price; }
}

this出现在成员方法中的用法:

public class Car {String name;double price;public void goWith(String name){System.out.println(this.name + "正在和" + name + "一起学Java!!");}
}

5、封装

面向对象的三大特征:封装、继承、多态

封装(Encapsulation)本质上是一种信息隐藏的手段,即将对象的属性和行为封装为一个整体并使得用户(即使用该对象的其他对象)只能看到该对象的外部接口(即对象暴露给外部的行为 说明),而对象的内部实现(属性即行为的具体实现细节)对用户则是不可见的。封装的目的在于隔离对象的编写者与使用者——使用者无法(也不必)知晓对象的具体实现细节,而是通过编写者为对象提供的外部接口来访问该对象。

面向对象中的类是封装良好的模块。封装所带来的最大好处是降低了软件系统的耦合程度,当外部接口涉及的行为的实现细节发生变化时,只要接口不变,则使用该接口的对象也不需要做任何修改。

封装的具体实现步骤:

  1. 一般对成员变量使用private(私有)关键字修饰进行隐藏,private修饰后该成员变量就只能在当前类中访问。
  2. 提供public修饰的公开的getter、setter方法暴露其取值和赋值。
public class Student {private int age;public int getAge() {return age; }public void setAge(int age) {if (age >= 0 && age <= 200) {this.age = age;} else {System.out.println("请检查年龄数值");}}
}

6、JavaBean

JavaBean可以理解为实体类,其对象可以用于在程序中封装数据。

7、成员变量和局部变量的区别

Java基础篇——面向对象编程相关推荐

  1. 100天精通Java (基础篇) —面向对象编程1.0【Java分水岭】

    目录 一.类与对象 1.养猫问题 2.使用之前学的技术解决 3.之前技术解决的缺点分析 4.代码 5.对象[属性,行为] 6.类与对象的关系示意图 7.类与对象的区别和联系 8.对象在内存中存在形式( ...

  2. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  3. Java基础篇--面向对象(Object Oriented)

    Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...

  4. 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  5. Java基础-OOP 面向对象编程

    OOP 面向对象编程 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构.强调的是具有某些特定功能的对象. 面向过程编程(Proced ...

  6. 第十二课 Java基础篇——面向对象进阶(一)

    一.Static static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量 静态变量是随着类的加载而加载的,优先于对象出现的 练习1.定义数组工具类 需求:在实际开发中,经常会遇到一 ...

  7. java基础篇---网络编程(IP与URL)

    一:IP与InetAddress 在Java中支持网络通讯程序的开发,主要提供了两种通讯协议:TCP协议,UDP协议 可靠地连接传输,使用三方握手的方式完成通讯 不可靠的连接传输,传输的时候接受方不一 ...

  8. java基础:面向对象编程1-初步认识

    package com.atguigu.java; /**一.学习面向对象内容的三条主线1.Java类及类的成员:属性.方法.构造器.代码块,内部类2.面向对象的三大特征:封装性,继承性,多态性3.其 ...

  9. JAVA基础-U7 面向对象编程(基础部分)-作用域

    作用域 在java编程中,主要的变量就是属性(成员变量)和局部变量. 全局变量:也就是属性,作用域为整个类体.可以不赋值直接使用,因为有默认值. 局部变量:一般指的是在成员方法中定义的变量(除了属性之 ...

最新文章

  1. 【Java小工匠聊密码学】--base58编码
  2. 百战百胜:人生10个成功秘诀
  3. 图像的多分辨率金字塔详解
  4. Qt网络编程——TCP服务器与客户端互发信息
  5. oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统
  6. matlab层次分析法程序购置设备,[转载]MATLAB实现层次分析程序
  7. C/C++ 指针小结——指针的概念和如何使用指针
  8. mysql查找配置文件的顺序
  9. matpower学习笔记
  10. leetcode-53-maxium subarray
  11. 令人耳目一新的人类进化,读《人类简史》有感
  12. VB前传,从教学到游戏,再到系统,似乎每步都是精心设计
  13. 今日头条新闻采集爬虫分享
  14. Richard Hamming ``You and Your Research''
  15. 利用栈将递归转换为非递归的方法
  16. MSP430晶振配置详解
  17. springboot/vue前后端分离后台管理系统增删改查
  18. 微信注册筛选软件 微信开通筛选技术
  19. Unity material修改图片的UV通道
  20. 通达OA系统排名?通达OA办公系统怎么选?什么是用户口碑最好的通达OA系统?

热门文章

  1. HDU 3518 HDU 4416【后缀自动机len的使用】
  2. Prometheus架构与实践分享
  3. c语言%hx输出大写,C语言输出函数printf
  4. 易语言 php post,易语言POST发送邮件
  5. WuThreat身份安全云-TVD每日漏洞情报-2023-01-31
  6. WuThreat身份安全云-TVD每日漏洞情报-2023-02-27
  7. offsetof函数的实现
  8. CSS制作舞台聚光灯效果
  9. 标准差-standard deviation
  10. 迷宫问题寻宝(c++实现,求最短路径,显示路径)