Java语言学习:面向对象程序设计

举报
吴梦青 发表于 2021/11/24 21:24:40 2021/11/24
【摘要】 Java的函数public static void sum(int a,int b){}public static 返回类型 函数名(参数表){}调用函数函数名(参数值)()起到了表示函数调用的重要作用即使没有参数也需要()Eclipse的按键:step into这个按钮可以让我们进入到函数里面去执行step return:直接从那个函数里出来,回到主函数调用这个函数的地方当函数期望的参数...

Java的函数

public static void sum(int a,int b)
{

}

public static 返回类型 函数名(参数表)
{
}

调用函数

  • 函数名(参数值)
  • ()起到了表示函数调用的重要作用
  • 即使没有参数也需要()
    Eclipse的按键:
    step into这个按钮可以让我们进入到函数里面去执行
    step return:直接从那个函数里出来,回到主函数调用这个函数的地方
    当函数期望的参数类型比调用函数时给的值的类型宽的时候,编译器会把类型转换好
    double高于int高于char:函数的形参是double的话,我们传char和int都没问题,但是要是形参类型是char,传了个int或double,就不行。
    用类制造对象

对象与类

  • 对象是实体,需要被创建,可以为我们做事情
  • 类是规范,根据类的定义来创建对象
    在这里插入图片描述

对象=属性+服务

  • 数据:属性或状态
  • 操作:函数
  • 把数据和对数据的操作放在一起–>封装
    在这里插入图片描述

1. 创建对象

package vendingmachine;
public class VendingMachine {
	int price=80;
	int balance;
	int total;
	void showPrompt() {
		System.out.println("Welcome");
	}
	void insertMoney(int amount) {
		balance=balance+amount;
	}
	void showBalance() {
		System.out.println(balance);
	}
	void getFood() {
		if(balance>=price) {
			System.out.println("Here you are.");
			balance =balance-price;
			total=total+price;
		}
	}
	public static void main(String[] args) {
		VendingMachine vm=new VendingMachine();
		vm.showPrompt();
		vm.showBalance();
		vm.insertMoney(100);
		vm.getFood();
		vm.showBalance();
	}
}
//定义了一个类,叫vendingmachine,用这个类去new了一个对象叫vm,让vm做事情
//类就是一个类型,可以定义变量
//对象变量是对象的管理者
//new VendingMachine ();
//VendingMachine v=new VendingMachine();
//让对象做事
//让对象做事
.运算符
v.insertMoney(10);
v.getFood();
//注意!!这里有个小圆点!
vm.showBalance();
vm1.showBalance();
//同一个类的两个不同对象

在这里插入图片描述
类是定义了这个类的所有对象长什么样,
对象是这个类的具体实例。在类里面定义的
成员变量,在每一个对象中存在,并在每一个对象中都是不一样的。
我的理解:类,相当于一个物质的定义,类的成员变量就是这个类的属性值。每一个类都可以定义不同的对象,这些不同的对象都有类的属性,但是每个对象的属性值不一样。

1.1 成员变量

  • 类定义了对象中所具有的变量,这些变量称作成员变量
  • 每个对象都有自己的变量,和同一个类的其他对象是分开的
    函数与成员变量
  • 在函数中可以直接写成员变量的名字来访问成员变量
vm.showbalance();
/*通过对象名 **.** 类名来调用函数时,
是建立了类与对象之间的联系,
编译器知道要去调函数的时候是
把哪个对象的值带进去。比如上面这个语句,编译器知道我们要show的是vm的balance*/

1.2 this变量:成员变量

this变量:是类的对象的变量或类的对象的管理者,它管着类的对象。this是成员函数的一个特殊的固有本地变量,它表达了这一次调用这个函数的那个变量。

我的理解:this是一个中介,我们运行不同的对象的时候,都会在this过渡一下,把我们对象的数据给this,this帮我们运行一下,然后把运行好的结果给我们,下一个对象来的时候,this之前的值就被现在对象的数据覆盖掉了。当然我们需要用小圆点来调用函数。this的操作是临时的。

这样想的话this还挺渣的。哈哈哈,开玩笑

public class VendingMachine {
	int price=80;
	int balance;
	int total;
	void setPrice(int price)
	{
		this.price=price;
		//这个语句让VendingMachine的price=setPrice的price
		//this.price的意思是访问VendingMachine的price
		//this.price是这个VendingMachine的price
		//第二个price是这个函数setprice内部的price
		//在这个成员函数里还可以调用VendingMachine的其他函数
		//可以用this点,也可以直接写名字调用
		//所以同行之间是平级的关系,可以自由调用
	}
}

在成员函数内部调用其他成员函数可以直接调用,可以用this。但没必要。但是!!在成员函数外部调用成员函数时要注明对象:vm.showBalance

1.3 本地变量

定义在函数内部的变量是本地变量
定义在函数外部的变量是成员变量
本地变量的生存期和作用域都是函数内部
成员变量的生存期是对象的生存期,作用域是类内部的成员变量
作用域在类的内部的意思是:这个类里面的成员函数可以使用这些变量,成员变量初始化的时候也可以使用这些变量

成员初始化

  • 成员变量定义初始化
  • 成员变量在定义的地方就可以给出初始值
  • 没有给出初始值的成员变量会自动获得0值
    • 对象变量的0值表示没有管理任何对象,也可以主动给null值
    • 定义初始化可以调用函数,甚至可以试用已经定义的成员变量

学习Java的网站:
java的官方网站
java.sun.com
Java的推动力
jcp.org
总结一下:1. 今天学了函数,函数里面没有新内容,就是把我们功能放到主函数外面去。
2. 类和对象:类是定义;对象是物质。类是对对象的抽象,对象是类的具体化。对象分为数据和服务。
3. 在成员函数内部调用其他成员函数可以直接调用,可以用this。但没必要。但是!!在成员函数外部调用成员函数时要注明对象:vm.showBalance

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。