面向对象01

面向对象(oop)01

程序=算法+数据结构

面向对象的三大特征:封装、继承、多态

封装:(称隐藏数据)就是将数据和行为组合在一个包中,并对对象的使用者隐藏数据的实现方式

实现封装的关键:绝对不能让类中的方法直接访问其他类的实例,程序仅仅通过对象的方法与对象数据进行交互,封装赋予了对象黑盒的特征,提高了代码的重用性和可靠性

类之间的关系

1.依赖(uses-a)
2.聚合(has-a)
3.继承(is-a)

日期类对象(Date)

System.out.println(new Date().toString());
//Mon Mar 08 09:56:19 CST 2021
System.out.println(LocalDate.now());
//2021-03-08
日期类对象(LocalDate日历对象)
    LocalDate lDate = LocalDate.of(2021, 1, 1);//构造一个时间
    LocalDate aDate = lDate.plusDays(50);//计算2021-1-1;50天后的时间
	System.out.println(aDate.getDayOfMonth());//返回50天后的月份2
	System.out.println(aDate.getYear());//返回50天后的年份2021
	System.out.println(aDate.getMonthValue());//返回50天后的天2
对象

对象必须是一个具体的事物

把一组对象共同拥有的属性和方抽取出来,形成的数据类型,称之为类

类和对象的关系

类相当于是一个模型,一类可以产生N个对象

类中拥有的那些属性和方法,它产生的N个对象也会有自动的属相和方法

类产生的具体实例,就是对象

一个类可以产生多个对象

类产生对象,对象抽象出类

类只是一个抽象的概念,不存在,对象是一个具体的事物

对象数组:可以存储多个对象

例如

Studengt [] arrs= new Student[3];

一个类中可以包含多个方法

\1. 主方法:

Public static void main(String [] args){}

\2. 普通方法:

\1. 无返回值,无参数

\2. 有返回值,无参数

\3. 无返回值,有参数

\4. 有返回值,有参数

Public void(){}

()中没有内容就是没有参数

有void返回值就是null

在声明方法时,括号中的参数称之为形参,形参没有具体的值,只是起到一个占位符的作用,实际调用的方法时传递的参数叫做实参。

方法自己调用自己叫做递归调用

封装

将属性和方法组成一个不可分割的整体

属性全部私有,通过公有的方法去访问对象的属性和方法

内部类

public class Order {
	public void name() {
		System.out.println("这是外部类的一个方法");
	}

	class Foler {
		public void name1() {
			System.out.println("这是一个内部类");
		}

		class shu {
			public void name2() {
				System.out.println("这是一个内部里面的内部类类");
			}
		}
	}
}


//测试类
public class Test02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Order order = new Order();
		Order.Foler foler = order.new Foler();
		order.name();
		foler.name1();

	}

}

继承

extends:继承

继承的目的

复用,提高代码的重复利用

子类可以继承父类里面的所有非私有的属性和方法除构造方法外

finalize垃圾回收的方法
	@Override
	protected void finalize() throws Throwable {
		super.finalize();
	}

super:在子类中super默认存在,调用的是父类的无参的构造方法

this 默认当前的实例化对象(一般可以省略)

重载overload

定义:在一个类中,方法名相同,参数列表不同(个数,顺序,类型)

目的:为了不取那么多的方法名

重写override

要求:父类的方法和子类要一模一样,包括返回值类型和参数列表

目的:父类的方法满足不了子类的需求,所以需要重写父类的方法

面向对象(oop)02

命名规则:类 首字母必须大写

方法名:以字母 数字 下划线 及美元符号组成,且不能以数字开头 不能是系统关键字

遵守驼峰命名法

类名 :不能具体,必须是抽象的一个名称,不能特指

在写代码前,强调一定要写注释

有new 就是在堆里面的

什么是javaBean

就是属性私有,编写公有的访问方法,属性使用Private修饰

在面向对象里

变量分为局部变量和成员变量

局部变量只能在本方法中使用而成员变量可以在本类任何地方使用

访问修饰符

Private 默认不写 protected public

Private 只限制在本类中使用

Protected 只能在本包中使用和默认唯一的区别是protected是用在子类

Public 修饰是可以在整个项目中使用

Static(静态)修饰

写静态不用new 对象,只要用类名.方法名就可以调
静态方法只能调用 静态属性
静态代码块 语法static{}静态块最先执行,不用调用,只执行一次
什么是构造方法,有什么用?什么时候用?
用代码来实现构造方法一个对象的赋值与打印
构造方法:构造方法是与类同名,没有返回值
作用:用来初始化成员变量
什么时候用:实例化对象的时候系统会自动调用构造方法

单例模式(饿汉模式)

public class Student {
	private static Student student = null;//因为静态方法只能访问静态属性,所以将属性私有化

	private Student() {//为了让调用者不能直接new对象,所以将构造方法私有

	}

	public static Student getInstance() {//因为构造方法私有了所以不能实例化对象来调用方法 所以就得			加一个static静态来修饰,直接用类名来访问,不用new对象
		if (student == null) {
			student = new Student();
		}
		return student;
	}
}

单例模式(懒汉模式)

static Student student=new Student();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值