跟着IT彭于晏学JAVA之面向对象

跟着IT彭于晏学JAVA之面向对象1 什么是面向对象面向过程 我应该干什么重在过程事务执行者 挑选一个电脑 台式 1 挑一个 cpuIntelCore 2 挑一个主板华硕 3 挑一个显卡七彩虹影驰 9600GT 4 挑一个显示器面向对象 重点在对象我该找谁干什么指挥者 找一个懂电脑的人帮你去买电脑 更贴近人的思维 懒人思维 2 面向对象的好处面向对象

1.什么是面向对象

面向过程:我应该干什么 重在过程 事务执行者 * 挑选一个电脑(台式) * 1.挑一个cpu Intel Core i7 * 2.挑一个主板 华硕 * 3.挑一个显卡 七彩虹 影驰 9600GT * 4.挑一个显示器 
面向对象:重点在对象 我该找谁干什么 指挥者 * 找一个懂电脑的人 帮你去买电脑 * 更贴近人的思维(懒人思维)

2.面向对象的好处

面向对象的好处: * 1.把复杂的问题 简单化 * 2.从事务的执行者 转化为 指挥者 * 3.更贴近人的思维(懒人思想)

3.类与对象

类和对象 * java中 最基本的单位 就是类 * 类:对抽象事物的描述(模板) * 对象:用类创建出来的就是对象(具体的事物)

4.成员变量与局部变量的区别

成员变量 和 局部变量 区别 1.在类中位置不同:成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。 2.在内存中的位置不同:成员变量:在堆内存。 局部变量:在栈内存。 3.生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而入栈,随着方法的调用完毕而消失。 4.作用域 : 成员变量:整个类. 局部变量:方法中. 5.初始化值不同:成员变量:跟堆内存中,有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。 6.注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。 

5.创建不同包下的同名类

package com.lanou3g; import com.lanou4g.Test; public class Demo03 { public static void main(String[] args) { //创建一个Person对象 Person p1 = new Person(); p1.fun(); //创建不同包下的同名类对象 //需要指定完整的包名来创建对象 //一般情况下:不建议写同名类 com.lanou4g.Person p2 = new com.lanou4g.Person(); p2.fun(); //创建不包不同名的类 Test test = new Test(); } }

6.参数是引用数据类型和数据是引用数据类型

public class Demo04 { //参数是基本数据类型 public static void fun1(int a) { System.out.println(a); a = 10; } //参数是引用数据类型 //要什么类型 就给什么类型 public static void fun2(Person p) { p.name = "刘斌"; p.age = 24; } public static void main(String[] args) { int a = 100; fun1(a); System.out.println(a); Person p1 = new Person(); p1.name = "凡鹏"; p1.age = 28; fun2(p1); p1.sayHi();//打印的是刘斌 24.因为进行的是地址的传递 } }

不多说 上图!!!

跟着IT彭于晏学JAVA之面向对象

不比比 再来一张

跟着IT彭于晏学JAVA之面向对象

7.匿名对象

 匿名对象:没有名字的对象 * 1.在方法传参数时使用 * 2.只调用一下方法(不赋值的情况下)
public static void setNameAndAge(Person p, String name, int age) { p.name = name; p.age = age; p.sayHi(); } public static void main(String[] args) { // 创建两个对象 并赋值 // 将重复代码抽成一个方法 Person p1 = new Person(); p1.name = "wanglong"; p1.age = 16; p1.sayHi(); Person p2 = new Person(); setNameAndAge(p2, "menglomg", 18); //使用匿名对象 当方法参数 //好处:减少代码量 setNameAndAge(new Person(), "kun", 20); //匿名对象 也是对象 也可以赋值属性 调用成员方法 new Person().name = "xin"; new Person().age = 30; new Person().sayHi();//打印结果是 null 0. 因为开辟的是三块区域 //只调用方法可以使用匿名对象 //测试方法的时候可能会使用 new Person().fun(); }

跟着IT彭于晏学JAVA之面向对象

8.封装

封装 * 写方法就是封装的一种 * 隐藏代码的实现和属性 不能随意修改 * 需要开发访问方式(方法) 获取 修改 * 好处: * 1.提高代码的复用性 * 2.提高代码的安全性

 私有的(权限修饰符) * private 私有的 * 被private 修饰的属性 只能本类中访问

9.构造方法

构造方法:对对象的成员变量进行初始化 * 写法: * 1.没有返回值类型(连void都不用写) *2.构造方法方法名 要与 类名 完全一致
//创建一个pen对象 //构造方法 是系统帮你调用 //只要你创建对象 系统就会帮你调用构造方法 //构造方法只会执行一遍 Pen pen = new Pen(); pen.sayHi(); //测试有参的构造方法 //当你传参数 系统就会去找你有参的构造方法调用 Pen p1 = new Pen("钢笔", "绿色"); p1.sayHi();

10.创建一个标准的java bean 类

类中写什么? * 成员变量 * 无参构造方法 * 有参构造方法 * 成员方法 * set/get方法

11.一个标准的Book类示范

public class Homework { public static void main(String[] args) { Book book = new Book(); Book book2 = new Book("少年阿宾", 25); book.setName("平凡的世界"); System.out.println("我是成员方法,这本书的名字是:"+book.getName()); } } class Book{ private String name; private int price; Book(){ this.name = "小王子"; this.price = 95; System.out.println("我是Book类的无参构造方法,我的书名是:"+name+",我的价格是:"+price); } Book(String name,int price){ this.name = name; this.price = price; System.out.println("我是Book类的有参数构造方法,我的名字是:"+name+",我的价格是"+price); } public void read(){ System.out.println("我是成员方法,这本书的名字是:"+name); } public void setName(String name){ this.name = name; } public String getName(){ return name; }







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221007.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:08
下一篇 2026年3月17日 下午7:09


相关推荐

  • c++ stringstream ss()[通俗易懂]

    c++ stringstream ss()[通俗易懂]定义了三个类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。本文以stringstream为主,介绍流的输入和输出操作。主要用来进行数据类型转换,由于使用string对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。简单说,相比c库的数据类型转换而言,更加安全、自动和直接。一、从string对象str中读.

    2022年5月22日
    67
  • strtok()函数的使用以及注意事项

    strtok()函数的使用以及注意事项一、函数的简介        函数原型:char*strtok(char*s,char*delim)       功能:作用于字符串s,以delim中的字符为分界符,将s切分成一个个子串;如果,s为空值NULL,则函数保存的指针SAVE_PTR在下一次调用中将作为起始位置。        返回值:分隔符匹配到的第一个子串二、主要内容       1、函数的作用

    2022年7月14日
    26
  • 激光测距传感器原理与应用介绍

    激光测距传感器原理与应用介绍激光,英文名称为LightAmplificationbyStimulatedEmissionofRadiation(简称LASER),意思为原子受激辐射的光,故称激光,激光的产生原理,是原子中的电子吸收能量后从低能级跃迁到高能级,再从高能级回落到低能级的时候,所释放的能量以光子的形式放出,被引诱(激发)出来的光子束(激光)。激光与普通光源相比,具有单色性、高亮度、方向性等优势,被广泛应用于工业生产和科研实验等各个领域,激光测距便是其中应用较为广泛的一项技术。1.激光测距技术的特点激光

    2022年5月29日
    46
  • 五、分类模型_大五模型包括

    五、分类模型_大五模型包括一、分类模型的定义文章目录一、分类模型的定义二、分类模型类型2.1、逻辑回归2.2、决策树2.3、支持向量机2.4、朴素贝叶斯在机器学习中,我们把机器学习分为监督学习和非监督学习,监督学习就是在一组有标签(有目标)属性的数据集中,我们将数据教给机器学习,让他根据数据中的属性和目标,去看题目答案一样把答案记住。之后再给类似的题目去作一样。我们把数据集中的标签,一般都标为属性,而我们又把属性分为离散属性和连续属性,每一个标签都是可以这样分的。像如果我们预测的属性值的特性是连续属性的话,我们把这种模型称为是

    2026年4月17日
    4
  • ubuntu外接显示器无信号_ubuntu笔记本外接显示器

    ubuntu外接显示器无信号_ubuntu笔记本外接显示器Overview 主机配置 启用远程控制 安装软件和支持 其它 注意事项 Reference 主机配置系统:Ubuntu18.04 显卡:Intel集成显卡启用远程控制首先要确保开机能够自动启动远程控制。Ubuntu18自带远程桌面控制服务软件;这里不具体写步骤,自行上网搜索。确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!确保上述远程桌面控制能够开机自启动!!!Ubuntu18自带的远程桌面控制

    2022年8月21日
    10
  • Nomic-Embed-Text-V2-MoE基础教程:3步完成MySQL安装配置与向量数据库集成

    Nomic-Embed-Text-V2-MoE基础教程:3步完成MySQL安装配置与向量数据库集成

    2026年3月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号