200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > JAVASE零基础入门——package 封装 继承 访问权限修饰符 super 重写 Javabean 和 final 关键字

JAVASE零基础入门——package 封装 继承 访问权限修饰符 super 重写 Javabean 和 final 关键字

时间:2023-12-04 22:26:49

相关推荐

JAVASE零基础入门——package 封装 继承 访问权限修饰符 super 重写 Javabean 和 final 关键字

目录

一、Package

二、封装

三、继承

四、访问权限修饰符

五、super 关键字

六、重写

6.1 重写 与 重载 之间的区别 :

6.2 重写的实现条件:

6.3 重写的需求 :

6.4 调用使用 :

6.5 检测是否为重写方法 :

6.6 不能被重写的方法 :

七、Javabean 和 final 关键字

一、Package

java引入了包机制

包信息存在与java代码的第一行,类的上面

包的定义规范 : com.yjxxt.xxxx

标识符规范 : 全部小写

作用:

1)方便管理众多资源

2)引入多重命名空间

导包 :

指明要使用的资源所在的位置

1)使用的位置使用权限定名java.util.Scanner,只在当前位置有效

2)使用import导包,在类的上面,package信息的下面,一个Java文件所有类有效

3)*模糊导入,模糊匹配当前包下的所有类,会降低编译效率,不会降低运行效率

4)静态导入只导入静态内容 import static

不需要导包的类 :

java.lamg

同包下的类

import java.util.Scanner;

// import java.util.*;

import static java.lang.Math.PI;

import static java.lang.Math.round;

public class Class001_Import {public static void main(String[] args) {//权限定名java.util.Scanner sc = new java.util.Scanner(System.in);Scanner sc2 = new Scanner(System.in);Random ran = new Random();System.out.println(PI);System.out.println(PI);System.out.println(PI);System.out.println(round(3.5));System.out.println(round(3.2));}}class Demo{public static void main(String[] args) {//权限定名java.util.Scanner sc = new java.util.Scanner(System.in);Scanner sc2 = new Scanner(System.in);Random ran = new Random();}}

二、封装

安全隐患问题 :

属性赋值,值有可能出现符合类型范围要求但是不符合业务要求的数据

private 私有的

被private关键字修饰的内容只能在本类中使用,其他类中无法使用

私有属性需要配合提供一对公共的访问方式--> 方法,因为在方法中可以做逻辑判断

设置器 setter : 为私有属性设置值

访问器 getter : 获取私有属性

注意: 定义实体类时属性都需要私有化,并且提供一对公共的访问方式

封装 : 隐藏内部的实现细节,对外提供公共的访问方式

优点 :

提高程序的安全性

提高代码的复用性

私有是封装,封装是私有?

私有是封装 √

封装是私有 ×

方法,类,属性的私有化... 都是封装的体现

public class Class001_Private {public static void main(String[] args) {Student s = new Student();s.setName("张三");//s.age = -18;s.setAge(28);s.show();System.out.println(s.getAge());}}class Student{private String name;private int age;//设置器 : 为age设置值public void setAge(int age){if(age<0 || age>40){System.out.println(age+"年龄不合法");return;}this.age = age;}//访问器 : 获取age的值public int getAge(){return this.age;}public void setName(String name){this.name = name;}public String getName(){return name;}public Student(){}public void show(){System.out.println(name+"--->"+age);}}

三、继承

继承 : 子承父业

目的 : 提高代码的复用性

作用: 子类一旦继承父类,有权使用父类中的成员,可以在子类中定义子类独有的内容

定义: 子类 extends 父类

实体类|子类 : 根据一系列对象抽取共性所定义的实体类

父类 : 子类的共性

子类| 派生类

父类 | 基类 | 超类

特点 : 单继承机制 ,一个子类只能继承一个父类,但是一个父类可以存在多个子类

修饰类只能使用public|default(默认)

开闭原则--> 面试对象设计原则之一 : 对修改关闭,对扩展开放

单继承的优点 : 简单

单继承的缺点 : 不便于后期维护

public class Class001_Extends {public static void main(String[] args) {Teacher t = new Teacher();t.name = "马云";t.age = 50;t.subject = "英语";t.teach();t.sleep();}}//父类class Person{public String name;public int age;public void sleep(){System.out.println(name+"在休息");}}//子类class Teacher extends Person{public String subject; //教授学科//构造器public Teacher(){}public void teach(){System.out.println("教书育人!!!");}}//子类class Student extends Person{public int num; //学号//构造器public Student(){}public void study(){System.out.println("学习!!!");}}

四、访问权限修饰符

注意:

都是成员修饰符,只能修饰成员,不能修饰局部 能够修饰类的 : public | default Protected修饰的成员在不同包下的子类中,需要通过继承关系使用 最常用的两种权限 : public|private

package com.yjxxt.modifier02;public class Class001_Modifier {public String testPublic = "public";protected String testProtected = "protected";String testDefault = "default";private String testPrivate = "private";public static void main(String[] args) {//测试本类中使用Class001_Modifier cm = new Class001_Modifier();System.out.println(cm.testPublic);System.out.println(cm.testProtected);System.out.println(cm.testDefault);System.out.println(cm.testPrivate);}public void test(){//测试本类中使用System.out.println(testPublic);System.out.println(testProtected);System.out.println(testDefault);System.out.println(testPrivate);}}//同包类class Demo{public static void main(String[] args) {//测试本类中使用Class001_Modifier cm = new Class001_Modifier();System.out.println(cm.testPublic);System.out.println(cm.testProtected);System.out.println(cm.testDefault);//System.out.println(cm.testPrivate);}}

package com.yjxxt.modifier03;import com.yjxxt.modifier02.Class001_Modifier;/*不同包下的子类*/public class Son extends Class001_Modifier {public void test(){System.out.println(testPublic);System.out.println(testProtected);//System.out.println(testDefault);//System.out.println(testPrivate);}public static void main(String[] args) {//父类对象访问Class001_Modifier cm = new Class001_Modifier();//Protected修饰的成员在不同包下的子类中,需要通过继承关系使用System.out.println(cm.testPublic);//System.out.println(cm.testProtected);//子类对象访问Son son = new Son();System.out.println(son.testPublic);System.out.println(son.testProtected);}}public class Others {public static void main(String[] args) {//测试本类中使用Class001_Modifier cm = new Class001_Modifier();System.out.println(cm.testPublic);//System.out.println(cm.testProtected);//System.out.println(cm.testDefault);//System.out.println(cm.testPrivate);}}

五、super 关键字

super 与 this 之间的区别:

this指代当前new对象

1.本类构造器的首行调用本类中的其他构造器this(参数列表)

2.区分局部与成员同名问题

默认就近原则

通过this.调用成员

super指代父类对象

1.子类构造器的首行,通过super(参数)调用父类中的指定构造器

如果没有显示通过super(参数)调用,默认调用父类的空构造

2.区分子父类中同名成员

如果不存在同名问题 : 可以省略super.调用父类成员

如果存在子父类同名成员问题,同名局部问题 :

默认就近原则

有局部找局部

通过this.找子类成员

通过super.找父类成员

注意:

子父类继承关系下 : 创建子类对象的时候,其实会先父类后子类 不能在构造器的首行同时使用this(参数)与super(参数) this与super都不能使用在静态方法中

public class Class001_Super {public static void main(String[] args) {Zi zi = new Zi("");zi.test();}}class Fu{String str = "FuStr";public Fu(){System.out.println("Fu");}public Fu(int i){System.out.println("Fu");}}class Zi extends Fu{//String str = "ZiStr";public Zi(){super(100);//super();System.out.println("Zi");}public Zi(String s){this();System.out.println("Zi----String");}public void test(){String str = "local";System.out.println(super.str);}}

六、重写

6.1 重写 与 重载 之间的区别 :

1.都是方法的特性

2.重载的实现条件 :

1.一个类中的多个方法

2.方法名相同

3.参数列表不同|方法签名不同

6.2 重写的实现条件:

1.两个类

2.继承|实现

3.方法签名完全相同

6.3 重写的需求 :

当子类从父类中继承的功能满意,对功能实现不满意的时候,可以在子类对从父类中继承的功能重新实现

6.4 调用使用 :

如果子类中没有重写,调用父类的,父类没有报错

如果子类存在重写方法,调用子类中重写后的方法,对父类的方法进行屏蔽

6.5 检测是否为重写方法 :

1.idea行号后面的位置出现o向上箭头

2.在重写方法上添加注解 @Override

6.6 不能被重写的方法 :

1.被private修饰的方法不能被重写

能被子类继承,但是无权使用

2.被final修饰的方法不能被重写

3.被static修饰的方法不能被重写

可以被继承不能被重写

如果子类中出现与父类中静态方法同名的方法,要求子类中这个同名的方法也被static修饰

public class Class001_Override {public static void main(String[] args) {SiCong siCong = new SiCong();siCong.words();siCong.test();}}class JianLin{String name = "王健林";//名人名言public static void words(){System.out.println("先定个小目标,挣它一个亿...");}public static void test(){}}class SiCong extends JianLin{String name = "王思聪";//重写方法public static void words(){System.out.println("我不在乎我的朋友有钱没有,反正都没我有钱...");}}

七、Javabean 和 final 关键字

Javabean : 一系列实体类的统称

定义规范 :

1.类是公共的

2.至少一个空构造

3.属性私有化

4.提供一对公共的访问方式

final 最终的

被final修饰的变量为常量

被final修饰的方法不能被重写

被final修饰的类不能被继承

public class Class001_Final {final static Student s = new Student();public static void main(String[] args) {//s = new Student();System.out.println(s.age);s.age++; //只修改了对象内存空间中的属性值,没有修改s存储对象地址值,所有s还是常量System.out.println(s.age);}}class Student{int age = 18;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。