目录
对象
什么是对象?
特点:对象无处不在
案例一:
不同类别的对具有不同的静态特性和动态特征,如果将上面的信息存储再计算机中,该如何做?
总结:在编程中,对象(用来描述客观事物的一个实体,又一组属性和方法构成)的属性被存储在一些变量里,如可以将"姓名"存储在一个字符串类型的变量中。对象的行为则通过定义方法来实现,如“收款”,“打印账单”都可以定义一个方法;
什么是封装?
就是把一个事物包装起来,并尽可能隐藏内部细节
类
总结:类定义了对象将会有的特征(属性)和行为(方法);
类的属性:对象所拥有的静态特征在类中表示时成为类的属性。
类的方法:对象执行的操作成为类的方法。
类和对象的关系
注:类是对象的类型,事实上,定义类就是抽取同类实体的共性定义的一种数据类型;
Java对象的创建和使用
创建:
类名 对象名 = new 类名();
使用:
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象方法
package oop;
public class School {
//属性
String schoolName;//学校名称
int classNum;//班级数量
int labNum;//实验室数量
//定义学校的展示方法
public void showCenter(){
System.out.println(schoolName+"大学"+classNum + "个班级"+",实验室的数量"+labNum);
}
public static void main(String[] args) {
School school = new School();
//给属性赋值
school.schoolName="蓝翔";
school.classNum=10;
school.labNum=4;
//调用方法
school.showCenter();
}
}
面向对象的优点
1.信息隐藏,提高了程序的可维护性和安全性
2.与人类的思维习惯一致
3.提高了程序的重要性
方法
1.方法的概述
语法:
方法:1.有参方法
pubilc 返回值类型 方法名(参数列表)
{
//方法的主体
}
2.无参方法
public 返回值类型 方法名(){
//方法的主体
}
如果方法没有返回值,则返回类型为void
方法执行完后会返回一个结果,结果的类型为返回值类型,使用return语句。
注:方法名
1.以字母、下划线、美元开头;
2.后面可以接任意的字母、下划线、美元和数字
2.不能包含java关键字
无参方法
案例:
类:
package oop;
public class AutoLion {
//定义属性
String color ="黄色";
//跑方法
public void run(){
System.out.println("正在以0.1米/s的速度奔跑");
}
//叫方法
public String bark(){
String sound="大声叫吼";
return sound;
}
public String getColor(){
return color;
}
//新增显示狮子特性的方法
public String showLion(){
return "这是一个"+getColor()+"的玩具狮子";
}
}
主函数:
package oop;
public class Text {
public static void main(String[] args) {
AutoLion al = new AutoLion();//创建狮子对象
System.out.println(al.bark());//调用叫的方法
al.run();
String info = al.showLion();//调用方法接收方法的返回值
System.out.println(info);//显示类的信息
}
}
带参方法
案例:
显示查找,查找学生姓名并且显示是否查找成功
package oop;
import com.sun.org.apache.bcel.internal.generic.NEW;
import java.util.Scanner;
public class Student {
/**
* 显示学生姓名的方法
*
* @param stuName 要显示的学生姓名,此处为方法形参
*/
public void showStudent(String stuName) {
System.out.println("输入学生的名字:" + stuName);
}
//显示查找区间,查找学生姓名并且显示是否查找成功
//定义学生数组
String[] stuName = {
"张三", "李四", "王五", "赵六", "老王"
};
/**
* @param start 开始位置
* @param end 结束位置
* @param name 姓名
* @return
*/
public Boolean searchName(int start, int end, String name) {
//创建方法返回值
boolean con = false;
if (start >= 0 && end < stuName.length) {
//循环查找
for (int i = start; i <= end; i++) {
if (stuName[i].equals(name)) {
con = true;
break;
}
}
}
return con;
}
public static void main(String[] args) {
// Student student = new Student();
// Scanner input = new Scanner(System.in);
// System.out.println("请输入学生的姓名");
// String name = input.next();
// //调用方法并传入实参
// student.showStudent(name);
Scanner input = new Scanner(System.in);
System.out.println("请输入开始查找的位置");
int s = input.nextInt();
System.out.println("请输入结束查找的位置");
int e = input.nextInt();
System.out.println("请输入结束查找的学生姓名");
String name = input.next();
Student stu = new Student();
if(stu.searchName(s,e,name)){
System.out.println("已经找到该学生");
}
}
}
常见问题一
常见问题二
常见问题三
调用之后的返回值没有进行一个处理,语法上没有错,但程序设计上有错
变量的作用域
局部变量在方法内部,只供方法使用。
成员变量在类的内部,在类的方法中可以直接使用成员变量,在外部类,需要创建对象来调用。
JavaDoc注释
能够从程序中来去抽取类,方法,成员等等的一些注释,去形成一个和源代码配套的API帮助文档
简单来说,就是介绍类,包括类方法以及下成员变量的文档
/**
*
* JavaDoc注释
* JavaDoc标签一般以@作为前缀
*
*
* @author laoxue 表示作者名
* @parameter 表示参数及其意义
* @version 1.0 表示版本号
* @throws //表示异常及其抛出的条件
* @creater 2022年6月13日11:15;37
*
*/
public class Text {
/**
*定义成绩1
*/
int score1 =80;
/**
*定义成绩2
*/
int score2 = 70;
/**
* 计算总成绩
* @return total
*/
public int calaTotalScore(){
int total = score1 + score2;
}