Java基础知识

  1. return的两种用法:
  • 应用在具有返回值类型的函数中:

  •  return  value://表示结束当前函数,并伴有返回值,返回到函数调用出处。
    
  • 应用在没有返回值类型(void)的函数中:

  •  return://表示结束当前函数,直接返回到调用函数处。
    
  1. 函数使用
  • 注意:一个类中可以定义多个函数,函数之间属于并列关系,不可嵌套。
  • 经验:一个函数只能做一件事情。(单一职能原则)
  • 好处:
  •  减少代码冗余
    
  •  提高复用性
    
  •  提高可读性
    
  •  提高可维护性
    
  •  方便分工合作
    

什么是对象
面向对象思想(Object Oriented Programming):
一切客观存在的事物都是对象,万物皆对象。
任何对象,一定具有自己的特征和行为。
对象:
1.特征:成为属性,一搬为名词,代表对象有什么。
2.行为:成为方法,一班为动词,代表对象能做什么。
程序中的对象
如何使用程序模拟现实世界,解决现实问题?
首先,在程序中,必须具有和现实中相同的对象,用模拟现实世界。
然后,使用程序中的对象代表现实中的对象,并执行操作,进而解决现实问题。
现实中的对象多数来自于“模版”,程序中的对象也应该具有“模版”。

什么是类
对象是“模版”,类是实例。
类的抽取
在一组相同或类似的对象中,抽取出共性的特征和行为,保留所关注的部分。
例如犬类,其具有的特征(属性)有:品种、年龄、性别、毛色…
方法(行为)有:吃、喝、拉、撒、睡等行为。
类的定义
属性:通过变量表示,又称实例变量。
语法:数据类型 属性名;
位置:类的内部,方法的外部。
方法:通过函数表示,又称实例方法。
语法:
public 返回值类型 方法名(形参){
//方法的主体

实例变量与局部变量的区别

局部变量实例变量
定义位置方法或方法内的结构当中类的内部,方法的外部
默认值无默认值字面值(与数组相同)
使用范围从定义行到包含其结构结束本类有效
命名冲突不允许重名可与局部变量重名,局部变量优先

方法重载的概念
有些情况下,对象的同一种行为可能存在多种实现过程。
重载(Overload):一个类中定义多个相同名称的放法。
要求:
方法名称相同。
参数列表不同(类型、个数、顺序)
与访问修饰符、返回值类型无关。
调用带有重载的方法时,需要根据传入的实参去找到与之匹配的方法。
好处:屏蔽使用差异,灵活方便。
注意:知识参数名称不同,并不能构成方法的重载。

构造方法
构造方法:类中的特殊方法,主要用于创建对象。
特点:
名称与类名完全相同。
没有返回值类型。
创建对象时,触发构造方法的调用,不可通过句点手动调用。
注意:如果没有在类中显示定义构造方法,则编译器默认提供无参数构造方法。

构造方法重载
构造方法也可重载,遵循重载规则。

public class test{
	public static void main(String[] args){
		new Teacher();
		new Teacher(20);
	}
}

class Teacher{
	String name;
	int age;
	String sex;
	double salary;
	
	//无参构造方法
	public Teacher(){
		System.out.println("--无参构造--")}
	
	//单参构造
	public Teacher(int a){
		System.out.println("--单参构造--");
	}
}

封装的概念
概念:尽可能隐藏对象的内部实现细节,控制对象的修改及访问的权限。
访问修饰符:private(可将属性修饰为私有,进本类可见)
get/set方法是外界访问对象私有属性的唯一通道,方法内部可对数据进行检测和过滤。

多态的概念
父类引用指向子类对象,从而产生多种形态。
Animal a = new Dog(); // 把dog对象当成animal 来看
Animal a :父类引用(引用类型) new Dog():子类对象(对象类型)
二者具有直接或间接的继承关系时,父类引用可指向子类对象,即形成多态。
父类引用仅可调用父类所声明的属性和方法,不可调用子类独有的属性和方法。
应用场景:一、使用父类作为形参实现多态,使方法参数的类型更为宽泛。
调用方法时,可传递的实参类型包括:本类型对象+其所有的子类对象
二、使用父类作为方法返回值实现多态,使方法可以返回不同子类对象。
调用方法后,可得到的结果类型包括:本类型对象+其所有的子类对象。

abstract抽象类
abstract修饰类:不能new对象,但可以声明引用。
abstract修饰方法:只有方法声明,没有方法实现。(需包含在抽象类中)
抽象类中不一定有抽象方法,但抽象方法的类一定是抽象类。
子类继承抽象类后,必须覆盖父类所有的抽象方法,否则子类还是抽象类。

static静态
1.静态(static)可以修饰属性和方法。
2.成为静态属性(类属性)、静态方法(类方法)
3.静态成员是全类所有对象共享的成员。
4.在全类中只有一份,不因创建多个对象而产生多份。
5.不必创建对象,可直接通过类名访问。
6.静态方法允许直接访问静态成员。
7.静态方法不能直接访问非静态成员。
8.静态方法中不允许使用this或是super关键字。
9.静态方法可以继承,不能重写、没有多态。
10.静态代码块在类的加载时被执行,且只执行一次。

final类
final修饰类:此类不能被继承。
String、Math、System均为final修饰的类,不能被继承。
final修饰方法:此方法不能被覆盖。
final修饰变量:此变量值不能被改变(常量)

接口的概念
接口与抽象类的异同
相同:
可编译为字节码文件。
不能创建对象。
可以作为引用类型。
具备object类中所定义的方法。
不同:
所有属性都是公开静态常量,隐式使用 public static finale 修饰。
所有方法都是公开抽象方法、隐式使用 public abstract 修饰。
没有构造方法、动态代码块、静态代码块。
java为单继承,当父类的方法种类无法满足子类的需求时,可实现接口扩充子类的能力。
任何类在实现借口时,必须实现接口中所有的抽象方法,否则此类为抽象类。
实现接口中的抽象方法时,访问修饰符必须是 public.

内部类
概念:在一个类的内部在定义一个完整的类。
特点:1、编译之后可生成独立的字节码文件。
2、内部类可直接访问外部类的私有成员,而不破坏封装。
3、可为外部类提供必要的内部功能组件。

成员内部类
在类的内部定义,与实例变量、实例方法同级别的类。
外部类的一个实例部分,创建内部类对象是时,必须依赖外部类对象。
Outer out = new Outer();
Inner in = out.new Inner();
当外部类、内部类存在重名属性时,会优先访问内部类属性。
成员内部类不能定义静态成员。

静态内部类
1、不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员。
2、只能直接访问外部类的静态成员(实例成员需实例化外部类对象)。

局部内部类
定义在外部类的方法中,作用范围和创建对象范围仅限于当前方法。
局部内部类访问外部类当前方法中的局部变量时,因无法保障变量的声明周期与自身相同,变量必须修饰final。
限制类的使用范围。

匿名内部类
没有类名的局部内部类(一切特征都与内部类相同)。
必须继承一个父类或者实现一个接口。
定义类、实现类、创建对象的语法合并,智能创建一该类的对象。

Object类
1、超类、基类,所有类的直接或者间接父类,位于继承树的最顶层。
2、任何类,如果没有书写extends显示继承某个类,都默认直接继承object类,否则为间接继承。
3、object类中所定义的方法,是所有对象都具备的方法。
4、object类型的可以存储任何对象:作为参数,可接受任何对象;作为返回值,可返回任何对象。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值