Java面向对象笔记:【第一章 面向对象】

本文详细介绍了面向对象编程中的核心概念——类和对象。类是对一类事物的抽象,对象则是类的实例,包含属性和方法。类的语法结构包括修饰符、类名、属性和方法的定义。对象的创建与使用涉及声明和实例化。方法是类或对象行为的抽象,通过方法实现对属性的操作。文中通过示例展示了如何声明和调用方法,以及参数传递的过程。
摘要由CSDN通过智能技术生成

1.1 类和对象

  • 类和对象是面向对象编程最重要、最核心的两个基本概念
  • 类是对一类事物描述,是抽象的、概念上的定义
  • 对象是实际存在的该类事物的每个个体,因而也称实例(instance)

1.1.1 类和对象的概念

  • 对象表示现实世界中某个具体的事物
  • 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程
  • 是具有共同属性和行为的对象的抽象
  • 类也称为模板,因为它们提供了对象的基本框架
  • 类可以定义为数据和方法的集合

  • 类以共同特性和操作定义实体
  • 类是用于组合各个对象所共有操作和属性的一种机制

属性

  • 事物的特性在类中表示为变量
  • 每个对象的每个属性都拥有其特有的值
  • 属性名称由类的所有实例共享

方法

  • 对象执行的操作称为方法
  • 操作的具体实现
  • 方法指定操作对象数据的方式
  • 在得到操作请求时指定如何做的算法

1.1.2 类的语法结构

语法:

[修饰符]class类名
{
    定义构造方法;
    定义属性;
    定义方法;
}
 - 修饰符可以是public、final、abstract或完全省略这三个修饰符
 - 类名必须是一个合法的标识符
 - 类中各成员之间的定义顺序对类的定义没有任何影响

1.1.3 对象的创建与使用

声明对象

格式:类名  对象名, 例如:Hero hero;

实例化对象

格式:对象名 = new 构造方法(),例如:hero = new 构造方法();

属性的调用

格式:对象名.属性,例如:hero.name=“zhang san”;

方法的调用

格式:对象名.方法名([参数列表]),例如:hero.run(30)”;

示例:创建一个英雄对象并测试该对象属性的赋值和方法调用

public class Hero {
        String name; //名字
 
        //奔跑方法
        public  void  run(int speed){
                System.out.println(speed+"m/s的速度飞速狂奔");
 }
        public static void main(String[] args) {
                //创建英雄对象
                Hero hero = new Hero();
               //通过对象实例调用name属性并为该属性赋值
                hero.name="黑暗游侠";
                System.out.println("英雄的名字:"+hero.name);
                hero1.run(60);//调用hero对象run(speed)方法
 }
}

1.1.4 对象和引用

  • 类是一种引用数据类型
  • 对象名是一个引用名
  • 对象名存放着栈内存I栈内存
  • 想比堆内存空间小但读取速度快

示例:创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置

代码如下:

public class TowerDefense {
 
        int x; 
        int y;
 
        public void showMessage() {
                System.out.println("防御塔的坐标位置:" + x + "," + y);
        }
 
        public static void main(String[] args) {
                TowerDefense td = new TowerDefense();
                td.x=2;
                td.y=3;
                td.showMessage();
        }
}

1.2 方法的详解

  • 方法是类或对象的行为特征的抽象
  • 通过方法可以实现对类的属性的操作
    功能封装
  • 实现代码模块化重用

1.2.1 方法的声明

语法

[<修饰符>]  返回类型 方法名([参数列表])
{
       方法体  
}
  • 修饰符表示方法的访问权限。修饰符有private、缺省访问修饰符、protected和public
  • 返回类型为方法返回值的类型(方法没有返回值,则方法的返回类型为void)
  • 定义时为形参,它没有分配内存,运行时才分配内存
  • 如果有多个参数,相邻的参数之间用逗号隔开
  • 对于有返回值的方法,方法体中至少有一条return语句
  • 方法不能嵌套定义

示例:在英雄类中设计一个战斗方法

class Hero {
          // 定义战斗方法
          void battle(){  
        /*实现具体的英雄战斗的业务逻辑*/
   }
  } 

1.2.2 方法调用

在main方法中调用对象的实例方法步骤

  • 在类的main0方法中创建可以调用方法的实例
  • 将实例赋值给指定的引用变量,通过引用“变量.方法名”的形式调用方法
说明:如果方法的返回类型为void,说明方法没有返回值,所以在main0方法中调用
时,可以将此方法作为一条语句直接在程序中使用

示例:在英雄类中定义战斗方法并测试该方法的调用

 public class Hero{ 
     String name;
     int age;
    
     public  void  battle(){
        System.out.println(name+"在肆无忌惮的战斗他的年龄才只有"+age+" 
           可他的血量只有1%...");
     }
     public static void main(String[] args) {
         Hero hero = new Hero();//创建英雄对象
         hero.name="暗夜魔王";//为name属性赋值
         hero.age = 15;//为age属性赋值
         hero.battle();//使用该对象的battle()方法 
     }
}

1.2.3 方法参数传递

参数的传递是指实际参数向形参值的传递的过程。

Java中方法参数的传递方式为值传递

将实参的副本(复制品)传入给形参实参本身不会受到任何影响

解释:
Java中的参教传递类似于Dota游戏中英雄使用的幻象,当英雄使用幻象时就会产生一

个与该英雄相同的复制品,幻象与英雄本身有相同的能力,但无论该幻象受到任何攻击

和伤害都不会影响英雄本身传入方法的是实参值的复制品,无论方法中对该复制品进

行何种操作,实际参数值均不会受到任何影响
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值