首页 > 编程语言 >Java语言程序设计——篇四(1)

Java语言程序设计——篇四(1)

时间:2024-07-15 21:01:11浏览次数:20  
标签:Java 语言 成员 修饰符 final 程序设计 方法 public 变量

类和对象

面向对象概述

两种程序设计方法

  • 结构化程序设计,典型代表C。
  • 面向对象程序设计( Object Oriented Programming,OOP ),典型代表Java, C++, Python。

面向过程与面向对象

  • ⭐️面向过程:专注于如何去解决一个问题的过程,编程特点是用一个个函数去实现过程操作,没有类与对象的概念。
  • ⭐️面向对象:专注于有哪一个对象实体去解决这个问题,编程特点是:出现了一个个的类,由类去生成对象。
  • ⭐️对象(Object)
    现实世界中,一个人、一辆汽车、一台电视机、一所学校,一次会议、一场足球比赛、一个账户等。
  • 对象的两方面的特征:
  • ⭐️静态特征: 描述对象的状态。
  • ⭐️动态特征: 描述对象的行为。
  • ⭐️对象的定义:是其自身所具有的状态特征及可以对这些状态施加的操作组合在一起所构成的实体。

面向对象基本概念

  • ⭐️类(class)
      例如人类、鱼类、交通工具类等。
  • ⭐️类定义:具有相似特征和行为的对象的集合。
    所有的事物都可以归到某类中。
       例如,汽车属于交通工具类,手机属于通信工具类。
  • ⭐️实例(instance)或对象
    某个类的一个具体的对象称为该类的一个实例。
      例如,我的汽车是汽车类的实例。

    面向对象的基本特征

  • ⭐️封装性
    对象是状态(属性)和行为(操作或方法)封装体。
      例如,一辆汽车就是一个封装体。
      实现信息隐藏,通过接口与外界通信。
    在这里插入图片描述
  • ⭐️继承性
    继承是将一个 已有类中的属性和方法保留,加上自己特有的属性和方法,形成一个新类,这种技术叫做继承,子类继承父类。
  • ⭐️多态性
    多态指一个程序中同名的不同方法共存的情况。Java通过方法的重载方法覆盖来实现多态。
    通过方法的重载,一个类中可以有多个具有相同名字的方法,但这些方法具有不同的参数个数或不同的参数类型。
    通过方法覆盖,子类可以重新实现父类的某些方法,使其具有自己的特征。

面向对象的优势及应用

1、易维护(maintainability)
  在OOP中,类就是一个模块,并且可以继承。
2、可重用(resusability)
  之前写好的代码可以被代码的创建者或其他人重用。
  可使用语言本身提供类库或API(应用编程接口)。
3、可扩展(extensibility)
  通过继承来实现功能扩展。

为对象定义类

[修饰符] class 类名 [extends 父类名] [implements 接口名] 
{
         1. 修饰符 类型  成员变量;
         2. 构造方法
         3. 修饰符 类型  成员方法(参数列表){
                类型  局部变量;
                方法体;
         ……}
} 

    类的修饰符:[public][abstract | final]

类的修饰符

    类修饰符:public、abstract、final、缺省。
1️⃣public:说明这是一个公共类,可以被其它任何类引用和调用。
2️⃣缺省: 不写访问控制符,表示类只能被本包的其它类访问。
说明:同一个源程序文件中不能出现两个或者两个以上的公共类, 否则编译时系统会提示应将第二个公共类放在另一个文件中。
3️⃣抽象类abstract
以abstract作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个抽象类。抽象类不能直接产生实例化一个对象,它只能被继承。
例如:食品,可以理解为能够吃的东西,但谁也不会说明食品是什么样子,平时可能指的是饼干、水果等具体对象。对于食品这个概念,必须进行进一步分类,才能实例化,如苹果、西瓜等。
4️⃣最终类final
以final作为关键字,如果有的话,应该放在访问控制符后面,表示这个类是个最终类,也就是说最终类不能被继承,不能再派生出其它子类。
例如:String类
abstract和final不能同时修饰一个类,既是抽象类又是最终类的类没有意义。

成员变量

类的成员变量描述了该类的内部信息。
        [修饰符] 变量类型 变量名 [=初值];
在定义类的成员变量时,可以同时赋初值,但对成员变量的操作只能放在方法中。
修饰符包括访问控制修饰符、静态修饰符static、最终说明符final。
成员变量的修饰符:[public | protected | private ] [static] [final]

成员变量-修饰符

1️⃣访问控制修饰符
访问控制修饰符包括4种类型:
private: 私有,此成员只能在类的内部使用。
默认(default/friendly) 也可以不写访问控制符,成员可被本包的其它类访问(包内友好)。
protected: 被保护,成员可被本包的所有类访问,也可以被子类访问(家庭成员)。
public: 公共,成员可被所有类访问 。
在这里插入图片描述
2️⃣静态修饰符static
用static声明的成员变量被视为类的成员变量,静态变量也称为类变量。没有static修饰的变量称为非静态变量,也称为实例变量。
3️⃣最终说明符final
用final声明的变量就是最终变量,即标识符常量,其值不可以改变。
如:final float PI=3.14 (一旦赋初值就不能改变)

构造方法⭐️

构造方法(constructor)是一种特殊的方法,它是在对象被创建时初始化对象的成员的方法。
构造方法的主要作用是对类对象的初始化工作。
构造方法的方法名与类名相同。
构造方法不能写返回值,也不能有void。
构造方法的返回值就是该类本身。

成员方法

类的方法是用来定义对类的成员变量进行操作的。
实现类内部功能的机制。
Java的方法必须定义在类的内部。

  [修饰符] 返回值的数据类型 方法名(参数列表)
  {
       语句序列;
       return [表达式];
  }

方法的修饰符:[public | protected | private ] [static] [final | abstract]

成员方法-修饰符

1️⃣访问控制修饰符 (与成员变量相同)
在这里插入图片描述
2️⃣静态修饰符static
用static修饰的方法称为静态方法,也称为类方法。
没有static修饰的方法称为非静态方法,也称为实例方法。
3️⃣final 方法
用final声明的方法称为最终方法。它不能被子类覆盖, 即不能在子类中修改或者重新定义,但可以被子类继承,用于保护一些重要的方法不被修改。
4️⃣abstract方法
用abstract修饰的方法称为抽象方法。这种方法只有方法的声明,却没有方法体,它不能实现。只能被重写时,加上方法体后,才能产生对象。
抽象方法只能出现在抽象类中,含有抽象方法的类称为抽象类,抽象类中还可以含有其他非抽象方法。

例题讲解

定义一个名为Employee的类

public class Employee {
    public String name;
    public int age;
    public double salary; 

   public Employee(){}    // 无参数构造方法

   public void sayHello() {
        System.out.println("My name is " + name);
    }

    public double computeSalary(int hours, double rate) {
         salary = salary + hours * rate; 
         return salary;
    }
}

用类创建对象(实例)

使用构造方法创建对象
Employee employee; //声明对象
employee = new Employee(); //创建对象 
employee.name = "李明";
employee.age = 28;
employee.salary = 5000.00;

⚠️理解栈和堆

JVM将内存空间在逻辑上分为栈(stack)与堆(heap)两种结构。
被调用方法参数和方法中的局部变量都存储在内存中,当程序使用new运算符创建对象时,JVM将在中分配内存。

假设在main()方法中创建Employee类一个对象

public static void main(String[] args){ //args是方法参数
    //employee这个对象是方法的局部变量
    Employee employee = new Employee();
    employee.name = "李明";
    employee.age = 20;
    employee.salary = 5000.00;
}

在这里插入图片描述
博主用心写,读者点关注,互动传真情,知识不迷路

标签:Java,语言,成员,修饰符,final,程序设计,方法,public,变量
From: https://blog.csdn.net/2201_75851346/article/details/140418451

相关文章

  • Java语言程序设计——篇四(2)
    类和对象方法设计定义和使用方法访问方法和修改方法方法的调用方法参数的传递✨方法重载✨构造方法(构造器)......
  • [深入理解Java虚拟机]线程
    状态转换Java语言定义了6种线程状态,在任意一个时间点中,一个线程只能有且只有其中的一种状态,并且可以通过特定的方法在不同状态之间转换。这6种状态分别是:新建(New):创建后尚未启动的线程处于这种状态,运行(Runnable):包括操作系统线程状态中的Running和Ready,也就是处于此状态......
  • 小白初识之C语言二
    重构:不增加代码功能,对代码结构的调整和优化,为了维护和拓展1.流程控制-顺序结构-分支结构(判断\选择)-循环结构2.分支-if-ifelse(三元运算替代)-ifelseifelseifelse(多路分支)-switch-case多路分支,有限,简洁3. 数组-一个标识符,存储多个值(大小是......
  • javap和字节码
    javap字节码的基本信息publicclassTest{privateintage=10;publicintgetAge(){returnage;}}在class文件的同级目录下输入命令javap-v-pTest.class来查看一下输出的内容//字节码文件的位置Classfile/D:/Code/code/JavaCod......
  • Java——N以内累加求和
    2024/07/151.题目2.错误3.分析4.答案1.题目2.错误importjava.util.Scanner;publicclassMain{ publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); intN=scanner.nextInt(); intsum=0; while(N<=1000){ for(......
  • 学习Java的第二周
    本该周六晚之前发表的第二次博客...因为自己也出了意外进了急诊拖到现在,先在这里致歉...黑马网课看了将近三十个课时了,目前感觉良好,越看越学越有兴趣。对于我这种0基础的小菜来说,初学时不应该追求深度,而应该去追求广度。从基础语法(方法、判断和循环、数组等)到面向对象,API、字符......
  • 基于Java+ Java Swing Mysql 实现的学生宿舍管理系统设计与实现
    一、前言介绍:1.1项目摘要随着高校招生规模的不断扩大,学生宿舍管理面临着越来越多的挑战。传统的学生宿舍管理方式往往依赖于人工记录、纸质档案和口头通知,这种方式不仅效率低下,而且容易出错,给宿舍管理带来了诸多不便。因此,开发一套高效、便捷、准确的学生宿舍管理系统成......
  • 基于Java+Ssm+Mysql实现的Java Web酒店管理项目系统设计与实现
    一、前言介绍:1.1项目摘要随着信息技术的快速发展和互联网的普及,传统酒店行业面临着转型升级的压力。为了提高酒店的经营管理水平,提升客户体验,酒店管理系统应运而生。酒店管理系统通过整合酒店内部资源,实现信息的快速传递和处理,为酒店提供了高效、便捷的管理手段。课题“......
  • C语言<<左移运算符
    在C语言中,<<是位左移运算符(BitwiseLeftShiftOperator)。这个运算符用于将一个数的各二进制位全部左移若干位,由运算符右侧的数指定移动的位数,左侧操作数的位将向左移动,移动的位数由右侧操作数决定。移动过程中,左侧操作数左侧超出位数的部分将被丢弃,而在右侧增加的部分将用......
  • C++程序设计最细教程
    1.类与对象(重点)1.1概念类:类是一个抽象的概念,描述同一类对象的特征。对象:符合类特性特性的实体。对象需要按照类的定义进行创建,因此先编写类才能创建对象。1.2类的内容类中最基础的内容包括两部分:属性(成员变量、数据成员)用来描述类对象的数据段,通常是名词变量,例......