学习JavaEE的日子 day11 初识面相对象

这篇具有很好参考价值的文章主要介绍了学习JavaEE的日子 day11 初识面相对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

day11

1.初识面相对象

1.1 类和对象的理解

* 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合

* 简单理解:类就是对现实事物的一种描述

类的组成

* 属性:指事物的特征,例如:手机事物(品牌,价格,尺寸)

* 行为:指事物能执行的操作,例如:手机事物(打电话,发短信)

类和对象的关系

* 类:类是对现实生活中一类具有共同属性和行为的事物的抽象

* 对象:是能够看得到摸的着的真实存在的实体

* 简单理解:*类是对事物的一种描述,对象则为具体存在的事物*

1.2 类的定义

类的组成是由属性和行为两部分组成

* 属性:在类中通过成员变量来体现(类中方法外的变量)

* 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

类的定义步骤:

①定义类

②编写类的成员变量

③编写类的成员方法

public class 类名 {

// 成员变量

变量1的数据类型 变量1;

变量2的数据类型 变量2;

// 成员方法

方法1;

方法2;

}

1.3 对象的使用

创建对象的格式:

* 类名 对象名 = new 类名();

调用成员的格式:

* 对象名.成员变量

* 对象名.成员方法();

1.4 案例

需求:创建人类的对象,并操作对象

分析:

​ 人类 - Person

​ 属性:name、sex、age

​ 方法:eat、sleep

步骤:

​ 1.创建Person类,属性、方法

​ 2.创建Person类的对象

​ (先创建Person,再在主方法中声明…)

   
public class Test01 {
public static void main(String[] args) {
		
		//创建对象
		Person p = new Person();//p--引用对象
		
		//设置属性
		p.name = "巴得伟";
		p.sex = '男';
		p.age = 23;
		
		//获取属性
		System.out.println(p.name);
		System.out.println(p.sex);
		System.out.println(p.age);
		
		//调用成员方法
		//注意:成员方法使用引用对象,调用对象
		p.eat();
		p.sleep();
		
		//调用静态方法
		//注意:静态方法使用类名,调用
		Person.method();
	}
}

学习JavaEE的日子 day11 初识面相对象,学习JavaEE,java,对象,类,内存图,局部变量

1.4 成员变量和局部变量的区别

类中位置不同:成员变量(类中方法外)局部变量(方法内部或方法声明上)

内存中位置不同:成员变量(堆内存)局部变量(栈内存)

生命周期不同:成员变量(随着对象的存在而存在,随着对象的消失而消失)局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)

初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用

学习JavaEE的日子 day11 初识面相对象,学习JavaEE,java,对象,类,内存图,局部变量

注:

对象在堆上还是栈上不仅取决于其是基本数据类型还是引用数据类型,还取决于其定义的位置,如果一个基本数据类型是成员变量,那么也存在堆上。

总结:方法内的是局部变量(栈里面),方法外的是成员变量(堆里面)

案例:

public class Person {
/** 成员变量
    成员属性/成员变量

 注意:属于对象的变量,系统会赋默认值,该类所有的成员方法都能使用该变量

成员变量的默认值:

     整数类型:0

     类型:0.0

     字符类型:' '

     布尔类型:false

     引用类型:null
        */
    String name;
	char sex;
	int age;
//成员方法
public void eat(){
	
	//局部变量:方法里的变量,必须初始化后,才能使用,其作用域在方法内
	int i = 100;
	
	System.out.println("吃饭饭 -- " + i);
}

public void sleep(){
	System.out.println("睡觉觉");
}

//静态方法
//注意:静态方法不能使用成员变量
public static void method(){
	System.out.println("静态方法");
}

内存图:

学习JavaEE的日子 day11 初识面相对象,学习JavaEE,java,对象,类,内存图,局部变量

总结

1.使用到类,JVM会把该类的class文件加载到方法区中,扫描该类的字面值常量,将字面值常量加载到常量池中

2.new对象会在堆中开辟空间,用于存储对象的成员变量,系统会赋默认值

3.引用中存储的是对象在堆中的地址 ( Person p=new Person(); p -->就是引用 )

4.调用方法,就会在栈中开辟空间,该空间存放方法的局部变量,方法执行完毕该空间会立刻回收

5.class文件中存放了该类所有的信息(属性,成员方法,静态方法)

简答题

1.面向对象和面向过程的区别

面向过程面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资

源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用

面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。

面向对象面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所

以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程

总结

多个对象在堆内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共用的一份

方法没有实例化,对象才有实例化,eg: Person p=new Person();//这个就是实例化文章来源地址https://www.toymoban.com/news/detail-796173.html

到了这里,关于学习JavaEE的日子 day11 初识面相对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习JavaEE的日子 day13补 深入类加载机制及底层

    初识类加载过程 使用某个类时,如果该类的class文件没有加载到内存时,则系统会通过以下三个步骤来对该类进行初始化 1.类的加载(Load) → 2.类的连接(Link) → 3.类的初始化(Initialize) 类的加载(Load):将类的class文件读入内存,并为之创建一个java.lang.Class的对象,此

    2024年01月18日
    浏览(52)
  • 学习JavaEE的日子 day13 封装 static private this 类加载机制

    理解:private是访问修饰符的一种,访问修饰符规定了访问权限. 作用: ​ 1.private修饰属性:该属性只能在类的内部使用 ​ 2.private修饰方法:该方法只能在类的内部使用 应用场景:不让让外界访问的属性和方法就用private修饰 面向对象三大特征之一: 封装,继承,多态 理解:

    2024年01月18日
    浏览(49)
  • 完全从零Java自学系列【入门篇】(第四课:Mysql服务端安装&使用客户端操作数据库&初识SQL基础操作&Java中使用第三方包&Java数据库操作&初步理解面相对象真正的意义之桥接设计模式)

      数据库是专门用来存储一系列集合数据的地方。所有的文件都可以被称之为库,当应用场景没那么复杂的时候,简单的应用程序用文本就可以了。数据库的意义是为了设计更好的保障数据安全(如多线程操作)、数据一致、索引(如何在庞大的数据中快速查找)等等一系

    2024年02月21日
    浏览(62)
  • 【零基础??天速成 Java】Day2 - 初识面向对象

    目录 前言 1. 可变参数的使用 2. 构造器 3. 包 1、包的创建 2、包的使用 3、包的命名规范 4、常用的包 5. 访问修饰符 6. 继承  7. super 8. 方法重写 Override 写在最后: 我的 java 基础学习,跟的是韩顺平的 java 课程~ 本篇文章涵盖视频 216 ~ 305 集里面 java 与 C++ 不同的知识

    2024年02月12日
    浏览(39)
  • lua学习笔记18(面相对象之多态)

    输出  

    2024年04月13日
    浏览(35)
  • java八股文面试[java基础]——面相对象特点

    三大特点: 封装 继承 多态   面试题:java如何实现多继承(除了使用接口之外) 实现多继承有三个方法 : 多层继承 内部类 接口 参考 java实现多继承的三种方式 多层继承 ​如果要直接继承类,子类是不可以直接多继承的,但是可以通过多层继承来实现多继承,但多层继承

    2024年02月12日
    浏览(52)
  • Java的编程之旅19——使用idea对面相对象编程项目的创建

    在介绍面向对象编程之前先说一下我们在idea中如何创建项目文件 使用快捷键Ctrl+shift+alt+S 新建一个模块,点击“+”,再点New Module 点击Next   我这里给Module起名叫OOP,就是面向对象编程的英文缩写,再点击下面的Finish  点Apply或OK均可 右键src 再点击 New----Package 自定义包名(建

    2024年02月22日
    浏览(41)
  • 尚医通day11-Java中阿里云对象存储OSS

    用户登录成功后都要进行身份认证,认证通过后才可以预约挂号。 认证过程:用户填写基本信息(姓名、证件类型、证件号码和证件照片),提交平台审核 用户认证相关接口: (1)上传证件图片 (2)提交认证 (3)获取认证信息 用户认证需要上传证件图片,因此我们要做

    2024年02月08日
    浏览(94)
  • 【学习笔记】java项目—苍穹外卖day11

    Apache ECharts 营业额统计 用户统计 订单统计 销量排名Top10 功能实现: 数据统计 数据统计效果图: 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:https://echarts.apache.org/zh/index.html 常见效果

    2024年04月09日
    浏览(47)
  • 【Java虚拟机学习2】HotSpot虚拟机下对象的创建及在Java堆中对象的内存分配、布局和对象的访问

    对象的生命周期主要分为创建、使用、销毁这三大阶段。从它被创建的一刻开始,到它被垃圾收集器(Garbage Collector)回收的一刻结束 对象的创建 。包括:1、类的加载 2、内存的分配 3、初始化零值 4、设置对象头 5、执行init方法(具体操作步骤请看上述内容,其中步骤1的类

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包