首页 > 分享 > Java入门

Java入门

JAVA基础知识(二) 封装继承权限修饰符零碎知识点数组this关键字的作用[^2]super关键字的作用static关键字的作用包名的零碎知识补充

封装

定义: 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
实现
封装前:

public String name; public int heath; public int type; 123456

第一步:私有化private方法

private String name; private int health; private int type; 12345

第二步:提供public方法,一般是setget方法

JAVA中对于变量的操作,仅有访问(get)和赋值(set)两种操作

public String getType(){return type; } public void setType(String type){this.type=type; } 123456

第三步:在构造中调用set和get方法,而不是直接赋值

public void print() { System.out.println("我的名字叫" + this.getName() + ",健康值" + this.getHealth() + ",和主人的亲密度" + this.getLove() + ",性别是:" + this.strain); } 123456

继承

定义: 借助继承,可以在现有类的基础上进行设计并充分利用它们已经具备的各种方法,而对设计进行修改也更为轻松。这样可以减少重复性的代码。
关键字 extends
实现

class A{//A是父类 } class B extends A{//B是A的子类,也可以说B继承了A } 123456

正如一个人只有一个生父一样,一个类只能有一个父类(或者说只能继承自一个类)

例子:
现在有一个Dog(狗)类和一个Penguin(类)。

class Dog{ private String name; private int health = 100; private int love; private int strain; } class Penguin{ private String name; private int health = 100; private int love; private int sex; } 1234567891011121314

大家会发现在这两个类中有name、health、love三个属性在两个类中重复出现。
这样就造成了冗余1。为了解决这个情况,我们要创建一个宠物(Pet)类。储存这三个元素且作为父类
修改后如下:

public class Pet {//父类Petprivate String name;private int health = 100;private int love;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getHealth() {return health;}public void setHealth(int health) {this.health = health;}public int getLove() {return love;}public void setLove(int love) {this.love = love;}// 健康值 } /** * 狗狗类 * * @author zhao9 * */ public class Dog extends Pet{private String strain;public String getStrain() {return strain;}public void setStrain(String strain) {this.strain = strain;}/** * 输出狗狗信息 */public void print() {System.out.println("我的名字叫" + super.getName() + ",健康值" + super.getHealth() + ",和主人的亲密度" + super.getLove()+ ",我是一只:" + this.strain);/* 操作 */} } public class Penguin extends Pet {private String strain;public String getStrain() {return strain;}public void setStrain(String strain) {this.strain = strain;}/** * 输出企鹅信息 */public void print() {System.out.println("我的名字叫" + super.getName() + ",健康值" + super.getHealth() + ",和主人的亲密度" + super.getLove()+ ",性别是:" + this.strain);/* 操作 */} }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081

权限修饰符

权限修饰符(public、protected、private、defalut)
使用如下表:

权限本类子父类(同包)子父类(不在同一个包)其他类(同包)其他类(不同包)public可以可以可以可以可以protected可以可以不可以可以不可以private可以不可以不可以不可以不可以defalut可以可以不可以可以不可以

零碎知识点

数组

引用了大佬的博客

this关键字的作用2

this调用本类中的属性,也就是类中的成员变量

以上文父类的定义程序进行演示:

System.out.println(this.name); 1 this调用本类中的其他方法

public void print() { System.out.println("我的名字叫" + this.getName() + ",健康值" + this.getHealth() + ",和主人的亲密度" + this.getLove() + ",性别是:" + this.strain); } 1234 this调用本类中的其他构造方法,调用时要放在构造方法的首行。

super关键字的作用

super作为调用方法使用,基本与this相同
super用于调用父类的成员变量函数方法父类的构造函数

调用父类中的属性

System.out.println(super.name);//调用父类中的姓名变量 1 调用父类中的方法

System.out.println(super.getName());//调用父类中的姓名返回函数 1 调用父类的构造函数

super(1.2.3);//直接调用父类的函数 1

static关键字的作用

JAVA中没有全局变量一说,而static所构建的函数或者变量在某种意义上实现了全局变量这一概念

static所修饰的变量或者方法与对象并没有依赖性。你可以在不创建对象的前提下去使用static所修饰的变量或者方法。
static所修饰的函数中并不可以出现thissuper等关键字

public static int a;//静态变量 public static void print(String str){//静态方法System.out.println(str); } 1234

包名的零碎知识补充

在我的上一篇文章里已经说了一本分,点击这里
在这里要补充的是如果是实体包,尽量使用entity;
在这里插入图片描述
测试类包则使用test
在这里插入图片描述

冗余概念——百度百科 ↩︎

参考自此处 ↩︎

相关知识

Java入门
基于JAVA宠物健康顾问系统 毕业设计开题报告
php java nodejs微信小程序的流浪宠物领养系统16cj8
电子宠物游戏java
Java基于JAVA语言的宠物寄养管理(开题+源码)
编写Java程序模拟主人养宠物 java写一个宠物系统
【Java项目】java实战宠物领养系统项目
java测试类pet
java
用java写的小宠物游戏

网址: Java入门 https://m.mcbbbk.com/newsview142230.html

所属分类:萌宠日常
上一篇: 军犬训练讲义 第四章:基础科目的
下一篇: 驯养狗基础本领