目录
如果能回答出这些问题,就可以跳过本章:
1.什么是类,什么是对象,互相有什么关系?
2.如何创建对象?
3.如何引用类中成员变量?
4.类中的方法怎么建立。无参,有参,无返回值void如何理解?
前言
从本章起,就开始了Java面向对象的知识点
本章讲解:类和对象以及方法的使用希望本章能更好的让大家理解和掌握类和对象的知识
一、面向对象编程(oop)及类与对象理解
面向对象思想,可以这样理解:
想象一下,打开一个网页,需要实现什么功能,只要单击即可实现相应的功能,我们无需知道背后的操作。
背后看不见的操作在Java中可以看做是通过自己创建的类。
而网页中,实现这些功能的,并且我们直接单击即可使用的,在Java中可以理解为将自己创建的类调用来使用。
(什么,还是云里雾里?没事没事,这里有点印象就好,学完本章,再回过头来看就更容易理解了) 后面提
先有一个概念:类是抽象的,对象是具体的
二、类
1.类的定义
类:相当于将相同属性的变量和相应的实现方法集合起来,形成一个类,可以称之为对象的模板或蓝图
mian方法所在的类为主类,这些类在mian方法中可以被调用,实现相应的功能。而在main方法中无需知道你这个功能是如何实现的。(后面会演示的,这里有个印象即可)
定义类的方法:
1,使用class关键字定义
2,编写类的属性(成员变量)
3,编写类的方法
例如:
定义一个“书”类
public class Book{
String bookName;//书名
String author;//作者
int price;//价格
public void Print(){
System.out.println("书名是"+bookName+"\t作者是"+author+"\t价格是"+price);
}
}
ps:1.如果在一个java文件中,只能有一个public类,其他的类直接写class定义即可
2.java文件名要以public 类的类名来命名,
例如:上方的Book类所在的java文件名为 Book.java
三、对象
类要创建才能使用,创建的类为对象。
正如上文所述,类是抽象的,对象是具体的。你可以看看这个类,就像一个空壳、模板,不是具体的,而对象是具体的,即这个空壳里是什么,模板是什么。
例如,上方的书类,是一个抽象的,不是具体的,只是给你一个模板。对象就是看这个书具体是什么书
对象的创建
类名 对象名 = new 类名();
引用成员对象
使用“ . ”进行操作
引用对象成员(属性):对象名.方法名
引用类的方法:对象名.方法名();
结合上方的书类,来创建一个对象
public class Text {
public static void main(String[] args) {
Book book = new Book();//创建对象
book.bookName = "呐喊";//分别给对象赋值
book.author = "鲁迅";
book.price = 25;
book.Print();//调用Print方法
}
}
将会输出:
书名是呐喊 作者是鲁迅 价格是25
这里的书对象是具体的,有具体的书名,作者,价格
现在应该能够很好的理解抽象了吧~
四、类的方法
类的方法,可以理解成,类中实现的某项功能
就像上方的Book类中的Print方法的作用是输出书名,作者,价格
本段,专门讨论一下类的方法
1.类的方法基本结构
a,访问修饰符
b.返回值类型
c.方法名(函数名)
d.参数列表
e.方法体(里面有返回值)
1️⃣访问修饰符
后面会详细介绍访问修饰符,访问修饰符就是控制谁能访问我这个方法
先有这个概念就可以了,像public是公有的,最开放的,目前练习可以直接写public
2️⃣返回值类型
就是这个方法要返回的类型,即:return所返回的类型
例如上方Sum返回的类型为int 所有return int型的值;
如果不想返回,可以将返回类型改成void。
这就表示没有返回值,也就不需要写return 语句
3️⃣方法名
自己取一个见名知意的名字即可
有一点要注意:方法名命名要遵循驼峰命名法,即:
第一个单词小写,之后的单词首字母大写
例如:getName, putName
4️⃣参数列表
遵循:(类型 变量名, 类型 变量名, ……)
int a, int b, int c……
要用逗号分割
还有一种括号里什么都不写(无参),也是可以的,只是代表不调用传来的值
5️⃣方法体
实现程序方法的功能代码段
五、练习
从键盘中输入语数英三门成绩,并求出总成绩及平均值(要求用今日所学的知识)
=========================================================================
解答如下:
Subject类(Subject.java文件中)
public class Subject{
int math;//数学
int chinese;
int english;
public void Sum(){//求和方法
int sumAdd = math + chinese + english;
System.out.println( sumAdd );
}
public void ave(int i, int j, int k){//求平均值方法
int average = i + j + k;
System.out.println( average );
}
}
其中的两个函数,即可无参也可有参,可以互换。
定义主类来调用
public class Text {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Subject subject = new Subject();
System.out.println("请输入三门成绩:");//存入三个值
subject.math = sc.nextInt();
subject.chinese = sc.nextInt();
subject.english = sc.nextInt();
subject.ave(math, chinese, english);//调用求平均值方法
subject,Sum();//调用求和方法
sc.close();//关闭sc
}
}
谢谢大家的观看。如果有问题,评论区见哈(* ̄︶ ̄)