JAVA面对对象编程第一章面对对象

本文是Java面向对象编程的基础教程,涵盖了类的语法结构、对象的声明与实例化、栈和内存的理解,以及方法的声明、调用和值传递的概念。通过示例解释了对象在内存中的存储以及如何通过引用访问对象。文章还提及了方法的声明和调用规则,并给出了课堂练习题,帮助巩固所学知识。
摘要由CSDN通过智能技术生成

Java基础的知识


前言

提示:大一上课学Java,灰色字体为自己理解,可能会有失偏跛,这东西主要也是靠自己理解,光看着没用,我的理解也不代表别人的理解,仅供参考,主要目的给自己参考进步。


提示:以下是本篇文章正回顾文内容,下面案例可供参考

一、基本结构

1.类的语法结构

[修饰符] class 类名{
	定义构造方法
	定义属性
	定义方法
}

注意:
1、修饰符是public、final、abstract等,可以简写
2、定义顺序没有关系
3、都可以定义0个或多个
4、类不能嵌套(类不能包含类)

2.对象的语法结构

1.声明对象:类名 对象名;
2.实例化对象: 对象名 = new 构造方法;
3.调用该属性: 对象名.属性;
4.调用该方法: 对象名.方法名;

实例化对象我也不知道是什么意思,百度了一下得出如下:
(实例化的过程)
实例化的过程
根据此图理解,实例化应该是用new关键字申请分配内存空间,在内存中实际产生一个类的实例。

3.栈和内存

案例:创建一个英雄类

代码如下(示例):

public class Hero{
	String name;	//名字
	int age;		//年龄
	char sex;		//性别

	//跑步方法
	public void run(){
		system.out.println(name+"在飞速前往战场")
	 }
	 //main方法
    public static void main(String[] args){
        //创建对象
        Hero hero1 = new Hero();
        //调用
        hero1.name="黑暗游侠";
        hero1.age=20;
		hero1.run();
    }

}

运行结果如图:
在这里插入图片描述

类是一种引用数据类型,放栈内存
属性是需要内存来存储的,放堆内存
上述代码在创建对象中在堆内存里申请了两个内存
如图所示:
在这里插入图片描述
创建完对象后,
对象储存在堆内存中,
不允许直接访问,
只能用引用访问该对象。

再创建一个防御塔类(TowerDefense),用两个坐标表示位置

代码如下(示例):

public class TowerDefense {
    int x;  //纵坐标
    int y;  //横坐标
    //构造方法
    public TowerDefense(){
        System.out.println("防御塔被实例化了")//个人觉得是初始化
    }
    //main方法
    public static void main(String[] args) {
     //创建对象
        TowerDefense td=new TowerDefense();
        td.x=10;
        td.y=20;
        System.out.printf("防御塔坐标为(%d,%d)",td.x,td.y);
    }
}

要用“.”关键字调用刚刚创建的对象,要不然编译错误

二、方法

1.方法的声明

[修饰符] 返回类型 方法名(参数){方法体}

1.修饰符有public、private、protected和缺省访问修饰符
2.没有返回值则返回void
3.有返回值用return返回
4.方法不能嵌套定义(不能再声明其他方法)

在刚刚Hero类中声明一个战斗(battle)方法

代码如下(示例):

 	//战斗方法
    public void battle() {        
    }

先暂时定义一个空方法。

2.方法的调用

  • mian方法是程序的入口,可以创建调用方法的实例
  • 实例用“变量.方法名”的方式赋值给引用变量

案例太多就不一 一演示了

3.值传递(实参→形参)

形参:方法在声明时的参数
实参:执行时实际传递的参数

案例太多就不一 一演示了x2

课堂练习题:
每次受到10点攻击,在战斗方法battle()中判断英雄血量是否小于等于0,如果条件成立,就结束循环

import java.util.Scanner;//导入scanner类

public class Hero {
    String name;	//名字
    int age;		//年龄
    char sex;		//性别
    int output;     //血量
    int count;      //攻击次数

    //跑步方法
    public void run(){
        System.out.println(name+"在飞速前往战场");
    }
    //战斗方法
    public void battle() {
        //创建对象
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入英雄血量(1-100间)");
        output =sc.nextInt();
        do{
            output -= 10;
            count++;
            if(output>0){
                System.out.printf("第%d次攻击,英雄血量还剩%d\n",count,output);
            }else{
                System.out.println("你死了");
            }
        }while (output>0);
    }

    //main方法
    public static void main(String[] args){
        //创建对象
        Hero hero1 = new Hero();
        //调用
        hero1.battle();
    }
}
 

运行结果如图:在这里插入图片描述


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了Java面对对象的记得内容·,大部分是为了回顾一下之前学的Java基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值