当前位置: 首页 > wzjs >正文

澄海建设局网站上不了优化落实防控措施

澄海建设局网站上不了,优化落实防控措施,wordpress 浏览ppt,涟水县住房和城乡建设局网站主要内容 面向过程和面向对象类和对象面向对象编程创建对象的内存分析成员变量和局部变量的区别构造方法及其重载构造方法和成员方法的区别this关键字static关键字代码块(局部代码块、构造代码块和静态代码块)package包学习目标 知识点掌握程度面向过程和面向对象理解类和对象…

主要内容

  1. 面向过程和面向对象
  2. 类和对象
  3. 面向对象编程
  4. 创建对象的内存分析
  5. 成员变量和局部变量的区别
  6. 构造方法及其重载
  7. 构造方法和成员方法的区别
  8. this关键字
  9. static关键字
  10. 代码块(局部代码块、构造代码块和静态代码块)
  11. package包

学习目标

知识点掌握程度
面向过程和面向对象理解
类和对象理解
面向对象编程掌握
创建对象的内存分析掌握
成员变量和局部变量的区别理解
构造方法及其重载掌握
构造方法和成员方法的区别理解
this关键字掌握
static关键字掌握
代码块(局部代码块、构造代码块和静态代码块)掌握
package掌握

1. 面向对象概念

面向过程(Procedure Oriented)和面向对象(Object Oriented)是两种不同的软件分析、设计和开发思想。它们引导开发者以不同方式思考和解决问题。历史上,面向过程思想先出现,但随着软件规模扩大和问题复杂性提高,面向过程的局限性逐渐显现,面向对象思想应运而生并成为当今主流方法。

C语言是典型的面向过程语言,而Java则是典型的面向对象语言。

1.1 面向过程

面向过程是通过分析解决问题所需的步骤,然后用函数逐步实现这些步骤,使用时依次调用这些函数来完成任务。
优点:

  • 性能较高,因为不需要类的实例化,减少了资源消耗
  • 适合对性能要求极高的场景,如单片机、嵌入式开发、Linux/Unix系统等

缺点:

  • 代码可维护性较差
  • 复用性不强
  • 扩展性有限

1.2 面向对象

面向对象思维方式更符合人类自然思考习惯,能将复杂问题简单化。它将问题分解为各个对象,建立对象的目的不是为了完成某个步骤,而是描述事物在整个问题解决过程中的行为。宏观上使用面向对象把握全局,微观处理上仍然是面向过程。

面向过程更像是"执行者"(自己做事情),而面向对象更像是"指挥者"(指挥对象做事情)。
优点:

  • 易于维护:代码组织更清晰
  • 易于复用:通过继承和组合可以重用已有代码
  • 易于扩展:可以通过多态等特性灵活扩展功能
  • 低耦合:封装、继承、多态等特性使系统更灵活,更易维护
    缺点:
  • 性能相对面向过程略低,因为类的实例化和方法调用有额外开销

1.3 面向对象举例

1.3.1 如何开汽车

面向过程分析面向对象分析
第一步:踩离合驾驶员 (对象)
第二步:挂挡汽车(对象)
第三步:踩油门,松离合驾驶员开汽车(对象交互)
第四步:车走了car.start() (方法调用)

在面向过程中,我们关注的是"如何开车"的每个步骤;而在面向对象中,我们关注的是"谁来开车"和"开什么车",然后通过对象之间的交互完成任务。

1.3.2 如何修建房子

面向过程分析面向对象分析
第一步:设计房子(修建几层楼,几间卧室等)设计师(对象,负责房屋设计)
第二步:购买材料(建筑材料、装修材料等)采购员(对象,负责材料购买)
第三步:修建毛坯房(夯实地基,修建房屋等)建筑工人(对象,负责房屋建设)
第四步:房屋装修(卫生间先防水后贴地板等)装修工人(对象,负责房屋装修)
第五步:入住入住(对象,执行入住行为)

2. 类和对象

Java是一种面向对象的程序设计语言(Object Oriented Programming:OOP),类和对象是其核心概念。理解它们之间的区别和联系对于掌握面向对象编程至关重要。

2.1 对象(object)

从哲学角度讲,万物皆对象。从编程角度看,对象是现实世界中具体事物在程序中的表示。
对象具有两个基本特征:

  • 状态(属性):对象的特征,描述对象的数据
  • 行为 (方法):对象能够执行的操作

例如:

  • 一部手机是一个对象,它有品牌、型号、颜色等属性,有打电话、发短信、拍照等行为
  • 一只猫是一个对象,它有品种、年龄、颜色等属性,有吃饭、睡觉、捉老鼠等行为
  • 一个学生是一个对象,他有姓名、学号、年龄等属性,有学习、考试、运动等行为

2.2 类(class)

类是对象的抽象,是对一类具有相同特征的对象的描述。类定义了这类对象共有的属性和行为,是创建对象的模板或蓝图。
类的组成部分:

  • 属性 (成员变量):描述类的特征
  • 方法 (成员方法):描述类的行为
  • 构造方法 :用于创建对象并初始化属性

例如:

  • 手机类(Phone)定义了所有手机共有的属性(品牌、型号、颜色)和行为(打电话、发短信、拍照)
  • 猫类(Cat)定义了所有猫共有的属性(品种、年龄、颜色)和行为(吃饭、睡觉、捉老鼠)
  • 学生类(Student)定义了所有学生共有的属性(姓名、学号、年龄)和行为(学习、考试、运动)

2.3 类与对象的关系

类与对象的关系可以从以下几个方面理解:

  1. 抽象与具体的关系:

    • 类是抽象的概念,不占用实际内存空间(方法区除外)
    • 对象是具体的实例,占用实际内存空间
  2. 模板与实例的关系:

    • 类是创建对象的模板或蓝图
    • 对象是根据类的定义创建的实例
  3. 一对多的关系:

    • 一个类可以创建多个对象
    • 多个对象都是同一个类的实例
  4. 时间顺序关系:

    • 先有类,后有对象
    • 必须先定义类,才能创建对象

3. 面向对象编程

3.1 类的定义

在Java中,类是对象的模板或蓝图,定义了对象的属性和行为。类就像一张设计图纸,而对象则是根据这张图纸创建的实体。一个空类虽然可以定义,但没有任何实际意义。要使类有意义,我们需要为其添加具体的组成部分。

类的主要组成部分:

  1. 属性(field) :定义格式: [修饰符] 属性类型 属性名 = [默认值];
  2. 方法(method) :定义格式: [修饰符] 返回值类型 方法名(形参列表) { 方法体 }

在类中定义的属性也称为 成员变量 ,类中定义的方法称为 成员方法 。

【示例】创建一个学生类,并添加类的成员变量和成员方法

public class Student {// 属性,此处也称为成员变量String name;    // 姓名int age;        // 年龄String major;   // 专业// 方法,此处也称为成员方法void eat(String food) {System.out.println(name + "正在吃" + food);}void study() {System.out.println(name + "," + age + "岁,专业是" + major + ",正在学习Java");}void introduce() {System.out.println("大家好,我是" + name + ",今年" + age + "岁,就读于" + major + "专业");}
}

注意 :成员变量定义在类中,整个类中的成员方法都可以访问。

3.2 创建对象

在Java中,对象也叫做objectinstance (实例),所以也称为实例对象。要创建对象,必须先有一个类,然后通过 new 关键字来创建对象。

语法格式 : 类名称 对象名称 = new 类名称();

【示例】通过Student类(模板),创建两个学生对象(具体实例)

// 测试类
public class ObjectTest {public static void main(String[] args) {// 实例化小明学生对象Student stu1 = new Student();// 成员变量赋值stu1.name = "小明";     // 设置名字stu1.age = 18;         // 设置年龄stu1.major = "计算机科学"; // 设置专业System.out.println("姓名:" + stu1.name + ",年龄:" + stu1.age + ",专业:" + stu1.major);// 调用成员方法stu1.eat("小龙虾");     // 调用吃饭方法stu1.study();         // 调用学习方法stu1.introduce();     // 调用自我介绍方法System.out.println("------------------------");// 实例化小花学生对象Student stu2 = new Student();// 操作成员变量stu2.name = "小花";     // 设置名字stu2.age = 17;         // 设置年龄stu2.major = "数据科学";  // 设置专业System.out.println("姓名:" + stu2.name + ",年龄:" + stu2.age + ",专业:" + stu2.major);// 调用成员方法stu2.eat("冰淇淋");     // 调用吃饭方法stu2.study();         // 调用学习方法stu2.introduce();     // 调用自我介绍方法}
}

在这里插入图片描述

注意事项:

  1. 成员变量隶属于对象,只能通过对象来调用,我们可以通过 对象.成员变量 来操作成员变量。
  2. 成员方法隶属于对象,只能通过对象来调用,我们可以通过 对象.成员方法(实参列表) 来调用成员方法。

3.3 成员变量默认值

我们可以在类中对成员变量显式初始化,也可以在创建对象成功后,通过 对象.成员变量 来设置成员变量值。如果以上两种操作都不做,Java虚拟机会使用默认值对其初始化。

数据类型默认值
整型0
浮点型0.0
字符型'\u0000'
布尔值false
引用类型null

3.4 对象内存分析

Java程序运行时的内存分配主要包括:

  • 栈 :用于存放局部变量,其特点是:先进后出,自下而上存储,方法执行完毕,自动释放空间。
  • 堆 :用于存放new出来的对象,需要垃圾回收器来回收。

当我们创建对象时,对象本身存储在堆内存中,而对象的引用变量存储在栈内存中。引用变量中存储的是对象在堆内存中的地址,通过这个地址可以找到并操作对象。
在这里插入图片描述
【随堂练习】

  1. 使用计算器(Calculator)完成加法和减法运算,并能显示出该计算器的品牌和尺寸。
    • 计算器成员变量:品牌(brand)、尺寸(size)
    • 计算器成员方法:加法运算(add)、减法运算(sub)和显示计算机信息(show)
public class Calculator {// 成员变量String brand;  // 品牌double size;   // 尺寸(英寸)// 加法方法public int add(int a, int b) {System.out.println("正在使用" + brand + "计算器进行加法运算");return a + b;}// 减法方法public int sub(int a, int b) {System.out.println("正在使用" + brand + "计算器进行减法运算");return a - b;}// 显示计算器信息public void show() {System.out.println("这是一台" + brand + "品牌的计算器,尺寸为" + size + "英寸");}
}
// 测试类
public class CalculatorTest {public static void main(String[] args) {// 创建计算器对象Calculator calc = new Calculator();// 设置成员变量calc.brand = "卡西欧";calc.size = 4.5;// 调用成员方法calc.show();// 进行计算int sum = calc.add(25, 17);System.out.println("加法结果:" + sum);int diff = calc.sub(100, 45);System.out.println("减法结果:" + diff);}
}

在这里插入图片描述

3.5 成员变量和局部变量区别

局部变量是定义在方法或代码块中的变量,成员变量是定义在类中与类的方法处于同一层次的变量。

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

区别点成员变量局部变量
定义位置定义在类中,整个类中的成员方法都可以访问定义在方法或代码块中,只在所属的区域有效
内存位置存在于堆内存的对象中存在于栈内存的方法中
生命周期随对象创建而存在,随对象消失而消失随所属区域执行而存在,随所属区域消失而释放
初始化有默认初始值无默认初始值,必须先赋值后使用
可用修饰符可被publicprotectedprivatestaticfinal修饰只能被final修饰

在使用变量时需要遵循的原则为: 就近原则 。首先在局部范围找,有就使用;接着在成员位置找。

public class VariableDemo {// 成员变量int num = 10;String name = "全局变量";public void method() {// 局部变量int num = 20;System.out.println("局部变量num:" + num);           // 输出20,就近原则System.out.println("成员变量num:" + this.num);      // 输出10,使用this关键字访问成员变量System.out.println("成员变量name:" + name);         // 输出"全局变量",没有同名局部变量,直接访问成员变量}public void anotherMethod() {// 局部变量int age = 30;// 下面的代码会编译错误,因为局部变量必须初始化后才能使用// int score;// System.out.println(score);// 正确的做法int score = 0;  // 初始化后使用System.out.println(score);// 访问成员变量System.out.println("成员变量num:" + num);  // 输出10}
}

3.6 匿名对象

通过使用new关键字来创建对象,这种对象分为两种:匿名对象与非匿名对象。

  • 非匿名对象 : Student stu = new Student(); - 有名字的对象,可以重复使用
  • 匿名对象 : new Student(); - 没有名字的对象,只能使用一次

使用场合 :

  • 当对象方法仅进行一次调用时,可以简化为匿名对象
  • 匿名对象可以作为实际参数进行传递

【示例】匿名对象的使用

public class AnonymousObjectDemo {public static void main(String[] args
http://www.dtcms.com/wzjs/30548.html

相关文章:

  • 美国设计网站关键词你们懂的
  • 如何做超一个电子商务网站企业推广app
  • 最好国内免费网站空间wordpress网站建设
  • 安徽安庆网站建设公司陕西网站建设制作
  • 注册公司的网站是什么营销型网站和普通网站
  • 网站建设开发教程如何注册网站
  • 企业网站开发效果线上营销活动主要有哪些
  • 网站未备案怎么做淘宝客百度指数在线查询工具
  • 做网站用什么格式做好推广搜索引擎
  • 学网站建设与管理好吗网站策划
  • 电子商务网站建设的答案百度广告登录入口
  • 无版权图片做网站网络营销课程ppt
  • 无锡做网站公司有哪些看网站搜什么关键词
  • 百色网站建设公司谷歌安装器
  • 如何做一家门户网站线上推广的好处
  • 静态旅游网站专业竞价托管
  • 给我一个可以在线观看的懂得电商seo名词解释
  • 开网站空间流量怎么选择网站排名在线优化工具
  • 网站 建设 语言我要恢复百度
  • 怎样做阿里巴巴网站的店招培训心得体会范文大全1000
  • wordpress适合做大型网站吗免费广告制作软件
  • 手机wap浏览器seo推广招聘
  • 连云港品牌网站建设优化网络培训
  • 制作网页站点的具体流程案例网络营销软件推广
  • 电子网站怎么做太原百度推广排名优化
  • 做百度网站需要多少钱全网推广公司
  • 奉贤深圳网站建设公司外链代发公司
  • 金华大奇网站建设百度app下载官方免费下载安装
  • 制作人在那个网站能看关键词排名零芯互联排名
  • 17做网站广州起做网店武安百度seo