2021-04-29_JAVA基础_面向对象(1)

JAVA基础_面向对象

学习4.0

思路
1、java类及类的成员:属性、方法、构造器;代码块、内部类
2、面向对象的三大特征:封装、继承、多态
3、其他关键字:

类学习1

属性=成员变量=field=域、
方法=成员函数=method

类和对象的创建

分三步:
创建类;
类的实例化;
调用对象的结构(对象.方法)

1、属性 vs 局部变量
	相同点:都是变量

	不同点:在类中声明的位置不同;  关于权限修饰符的不同;    默认初始化的值;   在内存中加载的位置
					属性---直接定义在类的一对{}内;  可以在声明属性时指明;    都有默认初始化值(调用时赋值即可);   
					局部变量---声明在方法内;        不可以使用权限修饰符;    没有默认初始化值(所以要先赋值)
					常用的权限修饰符:private\   public\  缺省\   protected \  
2、类中方法的声明和使用

声明:权限修饰符 返回值类型 方法名(){ 方法体 }

若方法有返回值,则必须在方法声明时,指定返回值的类型,且必须使用return 关键字;
若方法没有返回值,用void表示,可以不用return,如果使用的话,可以用“return;”

定义方法时需不需要返回值? 看要求、经验
定义方法时要不要形参? 看要求、具体分析

方法的使用中,可以调用当前类的属性或方法;
特殊的,方法A中调用方法A-------递归;
方法中不能定义别的方法;

3、return 关键字

使用范围:在方法体中
作用:结束方法 ;针对有返回值的,可返回数据; 后面不可以有执行语句

4、练习

引用类型的变量,只可能存储两类值:null或地址

学习5.0

类学习2

匿名对象

匿名对象的使用:new一个对象,不给它赋一个变量名; 一次性对象;

定义数组的工具类

工具类封装

方法的学习

方法的重载(overload)

定义:在同一个类中,允许存在一个以上的重载方法(即相同方法名),只要参数个数或类型不同即可;
同名不同参

可变个数的形参

允许直接定义能和多个实参相匹配的形参
格式:数据类型…变量名; 例:public void show(String ... strs){ }

调用时传入参数个数可以随便定,像数组一样调
可变个数形参的方法名与方法名相同,参数不同的方法之间构成重载;
public void show(String[] strs){ }不能互存,

必须声明在末尾,例:public void show(int i, String ... strs){ },(即可变个数的参数要放在最后,且只能有一个)

方法参数的值传递机制

关于变量的赋值:

	如果变量是基本数据类型,此时赋值的是变量所保存的数据值
	如果变量是引用数据类型此时赋值的是变量所保存的数据的地址值
	
	形参:方法定义时,声明的小括号内的参数
	实参:方法调用时,实际传给形参的数据

值传递机制
1、针对基本数据类型
实参赋给形参的是实参真实存储的数据值
2、针对引用数据类型
实参给形参的是地址值,所以修改形参也会修改实参

递归方法

一个方法内调用它自身
练习:菲波那切数列; 汉诺塔问题; 快排问题

封装和隐藏

封装性的体现:
1、将累的属性xxx私有化(priavte),提供公共的(public)方法类设置(setXxx)和获取(getXxx)

	public int getAge()  
	{
		return age;
	}
	public void setAge(int a)
	{
		age=a;
	}

2、不对外暴露的私有的方法
3、单例模式…

封装性的体现需要权限修饰符的配合

四种权限

private 类内部可用
缺省 类,同一个包可用
protectde 类,同一个包,不同包的子类可用
public 类,同一个包,不同包的子类,同一个工程内(不同包非子类)可用

四种权限度可以修饰类的内部结构
修饰类的话,只可以用:缺省、public

类学习3 —构造器

1、创造对象
2、给对象初始化
3、给对象赋值

如果没有显示定义类的构造器,则默认是空参构造器
格式权限修饰符 类名(形参){ }
一旦我们显示的定义了类的构造器之后,系统就不再提供默认的空参构造器
例子:

public class TriAngleTest {
	public static void main(String[] args) {
		TriAngle t1=new TriAngle();
		t1.setbase(2.0);
		t1.setheight(3.0);
		System.out.println("base="+t1.getbase()+"\theight="+t1.getheight());
		
		TriAngle t2=new TriAngle(4.5,6.0);
		System.out.println("base="+t2.getbase()+"\theight="+t2.getheight());
	}
}

class TriAngle
{
	private double base;
	private double height;
	
	public void setbase(double b)
	{
		base=b;
	}
	public double getbase()
	{
		return base;
	}
	public void setheight(double h)
	{
		height=h;
	}
	public double getheight()
	{
		return height;
	}
	//构造器
	public TriAngle()
	{
		
	}
	public TriAngle(double b,double h)
	{
		base=b;
		height=h;
	}
}

学习6.0

类学习4

javaBean的使用

指符合如下标准的java类

类是公共的
有一个无参的公共的构造器
有属性,且有对应的get 、 set 方法

UML类图

关键字this

1、可以用来修饰:属性、方法、构造器
2、修饰属性和方法时,this理解为:当前对象或当前正在创造的对象

在类的方法中,我们可以使用"this.属性”或“this.方法”调用当前属性或方法。但是通常可省略,只有当方法的形参和类的属性同名时,必须显示this.变量;
构造器中,也是同上,重名时显示this

3、调用修饰构造器

在累的构造器中,可以显示的使用“this(形参列表)”方式,调用类中其他的构造器;     不能调用自己
一个类中若有n个构造器,最多有n-1个使用;
规定:使用“this(形参列表)”必须放在当前构造器的首行;

package、import的使用

1、package - 包

	声明类或接口所属的包,  声明在首行
	属于标识符,遵循其规则规范(xxxyyyzzz)
	每“.”一次,代表一次文件目录
	注:同一个包下,不能命名同名的接口、类

2、import - 导入

	在源文件中显示的import结构导入指定包下的类、接口 	
	声明在包和类之间 	
	若需导入多个结构,则并列写出即可
	可以使用“xxx.*”的方式,表示导入xxx包下的所有结构 	
    若使用的类或接口是“java.lang”包下定义的,则可以省略import 结构 	
	若使用的是本包下定义的,则也可省略 	
	如果在源文件中使用了不同包下的同名类,则至少有一个使用全类名的方式显示
	使用“xxx.*”的方式,表示导入xxx包下的所有结构,但如果使用的是xxx的子包,则仍需使用import 	
	import statci  : 导入指定类或接口中的静态结构:属性或方法

MVC设计模式的理解

视图模型层、控制器层、与数据模型层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值