JAVA—面向对象

方法的重载:
1.在同一个类中
2.方法名必须相同
3.方法的参数个数不同或者类型不同
4.构造器可以重载
方法的重写:
1.必须要有继承
2.子类方法的返回值类型、方法名、参数列表与父类一样。
3.子类方法的修饰符不能小于父类方法的修饰符

方法的重写与重载的区别 (面试题)
重载:“两同一不同”,同一个类,同一个方法名,不同的参数列表,构造器可以重载

4种权限修饰符:
1.权限从大到小:public protected 缺省 private

static 随着类的加载而加载

this:
1.使用在类中,修饰属性,方法,构造器
2.表示当前对象
3.在构造器中使用this(形参列表)显示的调用本类中的重载的构造器

super:
1.相较于关键字this,可以修饰属性,方法,构造器
2.super修饰属性、方法:在子类的方法,构造器中,通过super.属性或者super.方法的形式,显示的调用父类的指定属性或方法。尤其是当子类与父类同名的属性,或方法时,调用父类的的属性,一定要用"super"
3.通过"super(新参列表)",在子类构造器中调用指定的父类构造器。

static:
1.可以用来修饰属性,方法,代码块、内部类

构造器的作用:
1.创建对象
2.给对象的属性赋值

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

封装:
1.把属性定义成private。
2.提供setter或getter方法
继承:
1.通过使用extends关键字来定义
2.java中只可以单继承,一个类只能有一个父类,一个父类可以有多个子类
多态:
什么是多态?
1.子类对象的多态性
多态运行的条件?
1.要有类的继承
2.要有子类对父类方法的重写

格式:Person p = new Man();//向上转型
格式:Man man=(Person) p; //向下转型
编译时“看左边”,运行时“看右边”,多态性并不用于属性。

Instanceor:
格式:对象a instanceof 类A 判断对象a是否是类A的一个实例,是的话返回true

equals:
1.基本数据类型:判断值是否相等
2.引用数据类型:判断引用类型的地址值是否相等

equals和==的区别:
由equals的源码可以看出这里定义的equals与是等效的(Object类中的equals没什么区别),不同的原因就在于有些类(像String、Integer等类)对equals进行了重写,但是没有对equals进行重写的类(比如我们自己写的类)就只能从Object类中继承equals方法,其equals方法与就也是等效的,除非我们在此类中重写equals。

包装类(wrapper): (掌握)
8种包装类
boolean boolean
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double

基本类型转换成包装类----》(自动转型)

	int i=10;
	boolean b=false;
	Integer i1=i;
	Boolean b1=b;

包装类转换成基本类型----》xxxValue();

	int i2=i1.intValue();
	double b2=b1.doubleValue();
	JDK5.0以后,自动装箱和拆箱
	Integer i3=i2;   //自动装箱
	Double b3=b2;  //自动装箱
	int i4=i3;  //自动拆箱
	double b4=b3;//自动拆箱

基本数据类型、包装类------》 调用String类的valueOf()方法

	int i1=10
	String str1=String.valueOf(i1);

String类-----》基本数据类型、包装类 parseXxx()

String st1="i3";
int i3=Integer.parseInt(st1);

static关键字:
static修饰属性:
static可以用来修饰属性、方法、内部类
在类里面定义的类变量,独一份。大家共用

static修饰方法:
随着类的加载而加载。也是独一份。
可以通过 “类.方法()” 调用

final关键字 ——》修饰类、属性、方法

final修饰的类不能被继承。
final标记的方法不能被子类重写。
final修饰属性此属性就是一个常量。

抽象类:abstract——》修饰类、方法

1.abstract修饰类不可以被实例化
2.抽象类有构造器(凡是类都有构造器)
3.abstract不能用来修饰属性、构造器,私有方法、静态方法、final的方法

接口:interface

1,接口可以看做是一个特殊的抽象类,是常量与抽象方法的集合。不能包含变量,一般的方法
2.接口没有构造器。
3.接口定义的就是一种功能,可以被类所实现(implements)
4.实现接口的类,必须要实现它所有的抽象方法。
5.类可以实现多个接口。 -----》java中的类的继承是单继承
6.接口与接口之间也是继承关系。可以实现多继承。用”,“号分开
7.一个接口可以被多个类实现

内部类:

成员内部类(声明在类内部,方法体外):
局部内部类(声明在类内部,方法体内):

单例设计模式:

单例设计模式,对某各类只能存在一个对象实例,
		
			/*
			 * 单例设计模式-->饿汉式
			 */
			public class TestSinglieton {
				public static void main(String[] args) {
					Singleton s1=Singleton.getInstance();
					Singleton s2=Singleton.getInstance();
					System.out.println(s1==s2);
				}
			}	
			class Singleton{
				//1.私有化构造器,是的在类的外部不能够调用此构造器
				private Singleton(){
					
				}
				//2.在类的内部创建一个类的实例,
				static Singleton instance=new Singleton();
				//3.私有化此对象,通过公共的方法来调用
				//4.此方法只能通过类来调用
				public static Singleton getInstance() {
					return instance;
				}		
			}

单例设计模式–>懒汉式

/*
				 * 单例设计模式-->懒汉式
				 */
				public class TestSingleton1 {

				}
				class Singleton1{
					//1.私有化构造器,是的在类的外部不能够调用此构造器
					private Singleton1(){
						
					}
					
					private static Singleton1 instance=null;
					
					public static Singleton1 getInstance(){
						if(instance==null){
							instance=new Singleton1();
						}
						return instance;
					}
				}

猜你喜欢

转载自blog.csdn.net/qq_42522346/article/details/85255292