JAVA基础课程(第八天)

JAVA基础课程

第八天

面向对象
递归方法

一个方法体内调用了它自身

方法递归包含了一种隐式的循环,它会重复执行某段代码,但是这种重复执行无需循环控制

递归一定要向已知方向递归,否者会变成无穷递归或者死递归

例子:循环1——100之间的自然数的和

package com.test.base;
/**
 * 〈求和计算〉
 *
 * @author PitterWang
 * @create 2020/4/25
 * @since 1.0.0
 */
public class AndTest {
	public static void main(String[] args) {

		AndTest andTest = new AndTest();
		System.out.println(andTest.backSum1(100));
	}
	/***
	 * 求1-max的和
	 * @param max
	 * @return
	 */
	public int backSum(int max){
		int sum = 0;
		for(int i = 1;i<=max;i++){
			sum += i;
		}
		return sum;
	}

	/***
	 * 求1-max的和
	 * @param max
	 * @return
	 */
	public int backSum1(int max){
		int sum = 0;
		if(max >= 1){
			sum = max + backSum1(max-1);
		}
		return sum;
	}
}
封装

(1)为什么要使用封装?

程序设计追求“高内聚,低耦合”

​ 高内聚:类的内部数据操作细节完成,不允许外部干涉

​ 低耦合:仅对外暴露少量的方法使用

我们创建一个类的对象以后,我们可以通过“对象.属性”的方式访问对象的属性进行赋值。实际问题中,我们要对属性进行一定的限制。避免用户直接访问属性,需要将属性声明为私有的(private),此时,针对属性就体现了封装性

(2)封装性的体现

将类的属性设为private,然后根据(get)和(set)方法进获取和设值

四种权限修饰符
修饰符类内部同一个包不同包的子类同一个工程
privateyes
缺省yesyes
protectedyesyesyes
publicyesyesyesyes

修饰类及类的内部结构:属性,方法,构造器,内部类

修饰类只能用:public,或者缺省

构造器/构造方法

作用:

(1).创建对象

(2).初始化对象的信息

说明:

(1).如果没有显示的定义类的构造器的话。则系统默认提供一个空参的构造器

(2).定义构造器的格式:权限修饰符 类名(形参列表){}

(3).一个类中定义的多个构造器,彼此构成重载

(4).一旦我们显式的定义了类的构造器以后,系统就不在提供默认的空参构造器

(5)一个类中,至少有一个构造器

属性赋值的先后顺序

(1)默认初始值

(2)显式初始值

(3)构造器初始值

(4)通过“对象.方法”或者“对象.属性”的方式赋值

JavaBean

Java语言写出的可重用组件

符合如下标准

(1)类是公共的

(2)有一个无参的公共的构造器

(3)有属性,且有对应的set,get方法

UML类图
this关键字

(1)用来修饰:属性,方法,构造器

(2)修饰属性和方法时,理解为 当前对象 或者 正在创建的对象

(3)说明:在类的方法中,我们可以使用“this.属性”,或者“this.方法”的方法,调用当前对象属性或方法,但是,通常情况下,我们都选择缺省的“this.”.特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用“this.变量”的方法,表明次变量式属性,而非形参

(4)this调用构造器

​ ①我们在类的构造器中,可以显式的使用“this(形参列表)”调用本类中指定的构造器

​ ②构造器中不能通过“this(形参)”方式调用自己

​ ③this(形参列表)必须在方法的首行

​ ④构造器中最多只能调用一个“this(形参列表)”的方式调用其他构造器

package关键字

​ (1)为了实现项目中类的管理,提供包的概念

​ (2)使用package声明类或者接口所属的包,声明在源文件首行

​ (3)包属于标识符,遵循规则

​ (4)每“."就代表一层目录文件

​ (5)同一个包下,不能命名同名的类或者接口。不同的包下可以。

import关键字

​ (1)在源文件中显示使用import结构导入指定包下的类或者接口

​ (2)声明在包的声明和类的声明直接,导入多个,并列写即可

​ (3)“xxx.*”可以导入xxx包下的所有结构

​ (4)java.lang包,或者本类的同包下可以忽略导入

​ (5)如果导入不同包下的同类名,必须有一个类需要以全类名的方式显示

​ (6)import static:导入指定类或者接口中的静态结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值