JAVA基础课程(第六天)

JAVA基础课程

第六天

面向对象
面向对象学习的三大主线

(1)Java类及类的成员:属性,方法,构造器,代码块,内部类

(2)面向对象的三大特征:封装,继承,多态

(3)其他关键字:this,super,static,final,abstract,interface,package

面向对象(OOP)和面向过程(POP)的区别

是两种思想,面向对象是相对于面向过程而言的。

面向过程强调的是功能行为,以函数为最小单位,考虑怎么做

面向对象将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

面向对象分析方法分析问题的思路和步骤

(1)根据问题需要,选择问题针对的现实世界的实体

(2)从实体中寻找解决问题相关属性和功能,这些属性和功能形成概念世界中得类

(3)把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。

(4)将类实例化成计算机世界中的对象。对象是解决问题的最终工具

类=抽象概念的人;对象 = 实实在在某个人

面向对象程序设计的重点是类的设计——》设计类就是设计成员

类中的成员{

​ 属性(Field)也叫成员变量:

​ 行为(Method)也叫方法,也叫函数:

}

类和对象的使用

创建一个类,设计成员

创建类对象

通过对象.属性,或者对象.方法调用对象结构

局部变量和成员变量的区别

(1)在类中声明的位置不同

​ 成员变量声明在类的{}里

​ 局部变量声明在方法内,方法形参,代码块中,构造器形参,构造器内部。

(2)权限修饰符不同

​ 成员变量可以声明当前变量的访问权限,可以使用权限修饰符修饰

​ 局部变量不可以用权限修饰符修饰

(3)默认初始值

​ 成员变量根据类型都有初始值

​ 局部变量,没有默认初始值,在使用之前一定要显式赋值,(做形参的时候不用)

(4)内存中加载的位置

​ 成员变量:加载到堆空间中

​ 局部变量:加载到栈空间

方法

(1)方法分类

无返回值有返回值
无形参void 方法名(){}返回类型 方法名(){}
有形参void 方法名(形参列表){}返回类型 方法名(形参列表){}

(2)方法声明

权限修饰符 返回值类型 方法名(形参列表){

​ 方法体

}

static,abstract,final 修饰后边章节说

(3)权限修饰符:private,public,缺省,protected

(4)返回值

​ 如果一个方法有返回值,则必须在方法声明时,指定返回值类型,同时方法中,需要使用return 数据;返回指定类型的变量或常量

​ 如果没有返回值,则不用return,如果用了return;表示结束此方法

(5)方法名,标识符

(6)形参列表,声明多个形参,传到方法中,格式(数据类型1:参数1,数据类型2:形参2)

(7)方法体,方法功能体现

练习代码

定义一个Student类,包含id,年级state(1-6年级),成绩score(0-100分),创建20个学生对象,学号1到20,年纪和成绩随机数确定。

(1)打印三年级的学生信息。

(2)使用冒泡排序按学生成绩排序,并遍历学生信息

package com.test.course;

/**
 * @author PitterWang
 * @create 2020/4/23
 * @since 1.0.0
 */
public class Student {
	int id;
	int status;
	int score;

	@Override
	public String toString() {
		return "Student{" +"id=" + id +", status=" + status +", score=" + score +'}';
	}
}


package com.test.course;

/**
 * 〈类和对象使用练习〉
 *定义一个Student类,包含id,年级state(1-6年级),成绩score(0-100分),创建20个学生对象,学号1到20,年纪和成绩随机数确定。
 *
 * (1)打印三年级的学生信息。
 * (2)使用冒泡排序按学生成绩排序,并遍历学生信息
 * @author PitterWang
 * @create 2020/4/23
 * @since 1.0.0
 */
public class StudentTest {

	public static void main(String[] args) {
		Student[] student = new Student[20];
		StudentTest studentTest = new StudentTest();

		/***
		 * 给学生赋值
		 */
		for(int i = 0; i<student.length; i++){
			student[i] = new Student();
			student[i].id = i;
			student[i].status = studentTest.getRandom(6,1);
			student[i].score = studentTest.getRandom(100,0);
		}


		//打印三年级的学生信息
		for(Student s: student){
			if(s.status == 3){
				System.out.println(s.toString());
			}
		}

		System.out.println("-------------------");
		//使用冒泡排序按学生成绩排序,并遍历学生信息
		for(int i = 0; i < student.length;i++){
			for(int j = 0; j < student.length - 1 - i; j++){
				if(student[j].score  < student[j+1].score){
					Student stu  = student[j+1];
					student[j+1] = student[j];
					student[j] = stu;
				}
			}
		}

		for(Student s: student){
				System.out.println(s.toString());
		}

	}


	/***
	 * 获取min到max之间的一个随机数
	 * @param max
	 * @param min
	 * @return
	 */
	public int getRandom(int max,int min){
		return (int)(Math.random()*(max-min)+min);
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值