Java学习路程4——面向对象

第三章第3节:面向对象进阶

封装 private

概述:

	封装的意义在于保护或者防止代码(数据)被我们无意中破坏。

	保护成员属性,不让类以外的程序直接访问或者修改;

封装原则:

	隐藏对象的属性和实现细节,仅对外公开访问方法,并且控制访问级别。

this

在Java基础中,this关键字是一个重要的概念。使用this关键字可以完成以下的操作:

·	调用类中的属性

·	调用类中的方法或构造方法

	-	在一个构造方法中,调用另一个构造方法时,调用的代码 必须编写在构造方法的第一行。

·	表示当前对象

eclipse自动生成setter,getter方法

shift + Alt + s -> Generate Getter And Setters -> 选择相应的属性

静态static

静态static:可以看作在方法区中单独存在的一个属性,每一个对象的创建不会影响它的属性。

static 静态属性,存储在方法区中

多行注释快捷键

Ctrl+Shift+C 或者 Ctrl+/ 会加上 // 注释,再重复按一下就会去掉 // 注释。

Ctrl+Shift+/会加上多行注释/** 注释内容 */

类先加载,对象再创建,

快捷导包

Ctrl + Shift + o

静态属性赋值:类名打点调用

/**
 * 继承:
 * 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
 * 继承就是子类继承父类的特征(属性)和行为(方法),使得子类对象(实例)具有父类的实例域和方法,
 * 或子类从父类继承方法,使得子类具有父类相同的行为。
 * 格式:
 * 		class 父类{
 * 		}
 * 
 * 		class 子类 extends 父类{
 * 		}
 *	继承的限制:
 *		Java中只有单继承,多重继承,没有多继承。
 *	
 *	super:
 *		通过super,可以访问父类构造方法
 *			调用super构造方法的代码,必须写在子类构造方法的第一行
 *		通过super,可以访问父类的属性
 *		通过super,可以访问父类的方法
 */





package Classroom;

/**
 * 重写(override)规则:
 * (作用在子类继承父类的某个方法时,方法不适用与子类的执行,就把该方法重写一遍)
 * 1.参数列表必须完全与被重写方法的相同;
 * 2.返回类型必须完全与被重写方法的返回类型相同;
 * 3.访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
 * 4.父类的成员方法只能被它的子类重写。
 * 5.声明为static和privete的方法不能被重写,但是能够被再次声明。
 *
 *
 *面试题:
 *	Java中重写(Override)与重载(Overload)的区别
 *		1.发生的位置
 *			重载:一个类中
 *			重写:子父类中
 *		2.参数列表限制
 * 			重载:必须不同的
 *			重写:必须相同的
 *		3.返回值类型
 * 			重载:与返回值类型无关
 *			重写:返回值类型必须一致
 *		4.访问权限
 *			重载:与访问权限无关
 *			重写:子的方法权限 必须不能小于 父的方法权限
 *		5.异常处理
 *			重载:与异常无关
 *			重写:异常范文可以更小,但是不能抛出新的异常
 */
public class Demo3 {
	
	public static void main(String[] args) {
		Student3 s = new Student3();
		s.say();
	}
	
}


class Person3{
	public void say() {
		System.out.println("锄禾日当午,汗滴禾下土");
	}	
}

class Student3 extends Person3{
	public void say() {
		System.out.println("床前明月光,玻璃好上霜。要不及时擦,整不好的脏!");
	}
}

执行结果:

动态扩容,讲解示意图:

随机数生成的方法:

package Test2;

import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		int code = random.nextInt(3)+1; //表示生成1-3的随机数
		System.out.println(code);
	}
}

重写equals

局部内部类:

提高代码复用率,面向对象编程。

package day01;

/**
 * final 关键字
 * 		final 用于修饰属性、变量
 * 			变量成为了常量,无法对其再次赋值
 * 			final修饰的局部变量,只能赋值一次(可以先声明后赋值)
 * 			final修饰的是成员属性,必须在声明时赋值
 * 			全局常量 (public static final)
 * 	
 * 			常量的命名规范:
 * 				由1个或多个单词组成,单词于单词之间必须使用下划线隔开,单词中所有字母大写
 * 				例如:SQL_INSERT
 * 
 * 		final 用于修饰类:
 * 			final修饰的类,不可以被继承
 * 		final 用于修饰方法
 * 			final修饰的方法,不能被子类重写
 * 
 * 全局常量 (public static final)
 * @author ZXyuan
 *
 */
public class Demo45 {

	public static void main(String[] args) {
		final int a = 10;
		System.out.println(a);
	}

}

装箱、拆箱操作:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值