我是靠谱客的博主 失眠仙人掌,最近开发中收集的这篇文章主要介绍Java基础笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Java常用包

Java.lang:语言包,如String,Math,System和Thread。
java.util:工具包,Arrays,List,Set
java.io:输入输出包
Java.net:网络函数包
java.sql:jdbc接口包。jdbc相关接口就写在这个包里。

向上转型

把一个子类类型安全的的变为父类类型的赋值,称为向上转型。

Student s= new Student();
Person p=s

向下转型

把一个父类类型强制转型为子类类型,就是向下转型

Person p1 = new Student(); // upcasting, ok
Person p2 = new Person();
Student s1 = (Student) p1; // ok
Student s2 = (Student) p2; // runtime error! ClassCastException!

Person类型p1实际指向Student实例,Person类型变量p2实际指向Person实例。在向下转型的时候,把p1转型为Student会成功,因为p1确实指向Student实例,把p2转型为Student会失败,因为p2的实际类型是Person,不能把父类变为子类,因为子类功能比父类多,多的功能无法凭空变出来
利用instanceof,再向下转型前可以先判断

Person p=new Student();
if(p instanceof Student){
Student s=(Student)p;

区分继承和组合

继承:是is关系,比如:Person和student。

class Student extends Person{}

组合:是has关系,比如Student和book。

class Book(){}
class Student(){
Book book;
}

protected

继承有个特点,子类无法访问父类的private字段和private方法,这使得继承作用被削弱,用protect修饰的可以被子类访问,protect把访问权限控制再继承树内部

class Person(){
protect String name;
protect int age;
}
class Student extends Person{
public String Hello(){
return "Hello"+name;}
}

构造方法

在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法,如果没有明确的调用父类的构造方法,编译器会自动给我们加上一句super(); 如果父类没有默认的构造方法,子类就必须显式的调用super()并给出参数以便让编译器定位到父类的一个合适的构造方法。

final修饰符。

final阻止继承,被final修饰的类,字段,方法为终类,不能被继承和修改

class final class String(){}

多态

Java的实例方法调用是基于运行时的实际类型的动态调用。而非变量的声明类型。

public class Main {
public static void main(String[] args) {
Person p = new Student();
p.run(); // 应该打印Person.run还是Student.run?
}
}
class Person {
public void run() {
System.out.println("Person.run");
}
}
class Student extends Person {
@Override
public void run() {
System.out.println("Student.run");
}
}

实际上最后还是调用的Student的run方法,因为实例是Student

abstract:抽象

只定义了方法,没有具体的执行代码,这个方法就是抽象方法。因为不能执行抽象方法,这个类也必须声明为抽象类。抽象类无法被实例化。,为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译会报错。因此,抽象方法实际上相当于定义了“规范”。
如果不实现抽象方法,则该子类仍是一个抽象类;

interface:接口

只有抽象方法,没有字段的抽象类叫接口。(可以有静态字段,但必须为final类型

abstract class Person {
public abstract void run();
public abstract String getName();
}
变成:
interface Person {
void run();
String getName();
}

抽象类只能被单继承,接口可以被多继承

static:静态字段和静态方法

静态字段和方法属于类,不属于实例,所有实例都可以共享静态字段和方法。

最后

以上就是失眠仙人掌为你收集整理的Java基础笔记的全部内容,希望文章能够帮你解决Java基础笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部