Java初学者笔记二:关于类的常见知识点汇总
一、Java的类:
Java的类是Java的基本概念了,基本的定义语法我就不提了,自己也不会忘了的,下面分成几个模块介绍:
1、Java的类定义时候的修饰符
2、Java的类的继承与派生
二、Java类定义的时候的修饰符:
说白了其实基本上就是变量的一些修饰符,因为java没有类外的变量或者方法可以用
1、public、protected和private
/*
第一类protected private public
public所有类可见
protected 包内的所有类和任何位置的子类可见
private 只在本类内可见
以上均可以修饰属性、方法 ,public可以修饰类,但是一个java文件只能有一个public类
*/
import java.io.*; class person{
public String pName;
private String pId;
enum Gender {Male,Female};
protected Gender pGender;
protected int pAge; person(String name,String id,int gender,int age) throws Exception{
this.pName = name;
this.pId = id;
if(gender == 0) {
this.pGender = Gender.Male;
}
else if (gender == 1) {
this.pGender = Gender.Female;
}
else {
throw new Exception("Gender Error!");
}
this.pAge = age;
} protected String getId() {
return this.pId;
} public void setName(String name) {
this.pName = name;
} private void sick() {
System.out.println("sick");
}
}
2、static静态变量(属性)与静态函数(方法)
静态指不依赖任何实例的变量或者方法,属于类的全体实例共享的,所以也不是独立的。如果有protected修饰就有点类似python里面的类变量,用public修饰就成了全局变量了,使用private修饰就成了带_ _的类变量了(但是其外部访问永远无法做到)。静态变量可以被静态与非静态方法调用。但是静态方法只能调用类中静态变量和自己参数中的变量。
public static int a = 1;
private static int b = 2;
protected static int c = 3;
public static void run(){}
private static void run(){}
protected static void run(){}
3、final
final是只能被赋值一次的变量,只能被继承不能被重载的方法,和不能被继承的类(所有成员方法都是final方法)
public final a = 1;//后面再也不能给a赋值了
public final void run(){}//子类可以继承但不能重载run方法
final class A{}//不能被继承的类,所有成员方法都是final方法
三、java的继承与派生
1、单继承
import java.io.*;
class person{
public String pName;
private String pId;
enum Gender {Male,Female};
protected Gender pGender;
protected int pAge;
person(String name,String id,int gender,int age) throws Exception{
this.pName = name;
this.pId = id;
if(gender == 0) {
this.pGender = Gender.Male;
}
else if (gender == 1) {
this.pGender = Gender.Female;
}
else {
throw new Exception("Gender Error!");
}
this.pAge = age;
}
protected String getId() {
return this.pId;
}
public void setName(String name) {
this.pName = name;
}
private void sick() {
System.out.println("sick");
}
}
class student extends person{
private int sScore;
public String sSchool;
public int sLevel;
student(String name,String pid,int gender,int age,int score,String school,int level) throws Exception{
super(name,pid,gender,age);
this.sScore = score;
this.sLevel = level;
this.sSchool = school;
}
public void showinfo() {
System.out.println(this.pName);
System.out.println(this.getId());
System.out.println(this.pGender);
System.out.println(this.pAge);
System.out.println(this.sSchool);
System.out.println(this.sLevel);
System.out.println(this.sScore);
}
}
(1)知识点1:重载构造方法:
自己的变量自己管,父类的变量super()传。子类的构造函数参数要包含父类构造函数中的参数,并把父类的那部分参数传入super()进行调用。
(2)知识点2:
重载方法后优先使用重载的方法。
2、接口与抽象类:
(1)接口是一种特殊类:
/*@Override是重载父类或者接口的修饰符,编译器识别到这个之后,可以在编译时帮助检查父类是否由此方法*/
interface jiekou{
//只能有静态全局常量public static final xxxx和抽象方法
}
/*
1、接口必须有子类
2、子类可以继承多个接口
3、接口中的子类如果不是抽象类,必须重写接口的所有方法
4、接口本身可以继承多个接口extends,接口不能继承抽象类和普通类
5、接口可以实例化但是必须通过子类的实例的反转实现
*/
//X类继承A和B两个接口
X x = new X();//实例化子类对象
A a = x;//向上转型
B b = x;//向上转型
(2)抽象方法与抽象类:
(2.1)延伸接口中的抽象方法的抽象概念,此概念也可以到抽象类
abstract void func();
这就是一个方法的定义,只有函数的抽象概念没有实际的实现。必须要到子类中给与重载实现。
(2.2)抽象类:
/*
抽象类:
1、拥有抽象函数的类就叫抽象类,与接口不同可以有普通的成员变量和方法,但是至少有一个抽象方法。
2、继承抽象泪的子类如果不是抽象类那么必须重载实现父类的抽象方法。所以抽象方法必须public或者protected的。
3、抽象类不能创建实例。
4、抽象类可以继承抽象类。
*/
abstract class ClassName {
abstract void fun();//至少有一个抽像函数;
}
(3)总结一下多继承:
(3.1)前提:
#接口是一种特殊的抽象类(只有全局静态变量和抽象函数的抽象类)
#接口必须被继承才有用(不能直接实例化)
#接口中的方法都必须重载后才能使用
#抽象类可以继承抽象类(只能继承一个,可以继承接口,可以继承多个)
#接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法
#抽象类必须继承才能用(不能直接实例化)
(3.2)多继承
#普通类可以继承普通类和抽象类(但是一个只能继承一个),可以继承接口(多个)。
#抽象类可以继承抽象类(一个),可以继承接口(多个)。
#接口可以继承接口(多个)
interface A extends B,C{}
abstract class D{}
abstract class E extends D implements A,B,C{}
class F{}
class G extends F implements A,B,C{}
class H extends E {}
Java初学者笔记二:关于类的常见知识点汇总的更多相关文章
- Java初学者笔记
Java初学者笔记 前提:认识汉字,认识英语单词,会用键盘打字 ------------------------------- 端口是什么: --------面向对象编程(OOP) 接口”(Inter ...
- Java初学者笔记一:元类、获取类型、枚举
零.绪论: 2018年新年伊始,学习Java的冲动越来越强烈,毕竟以后无论是做安全开发还是安全研究都必不可少的掌握这门语言,所以在不断完善Python作为脚本语言的主语言的情况下觉得学习Java作为高 ...
- Java基础---IO(二)--File类、Properties类、打印流、序列流(合并流)
第一讲 File类 一.概述 1.File类:文件和目录路径名的抽象表现形式 2.特点: 1)用来将文件或文件夹封装成对象 2)方便于对文件与文件夹的属性信息进行操作 3)File类的实例是不 ...
- Java开发笔记(七十三)常见的程序异常
一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- Java学习笔记二十一:Java面向对象的三大特性之继承
Java面向对象的三大特性之继承 一:继承的概念: 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方 ...
- Java学习笔记二--API课堂记录
JavaSE课堂记录(二) 第一节课 方法的重载:方法名相同,参数列表不同 方法的重写:方法名,参数列表相同 两同:方法名相同,参数列表相同 两小:访问权限小与等于父类,返回值类型小于等于父类(返回值 ...
- java新手笔记27 监听器类
1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...
- 【原】Java学习笔记031 - 常用类
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...
随机推荐
- iOS边练边学--xib文件初使用
一.Xib和storyboard对比 *共同点: 1>都用来描述软件界面 2>都用Interface Builder工具来编辑 3>本质都是转换成代码去创建控件 *不同点 1> ...
- CSS圆角框,圆角提示框
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C++很“虚”
0引言:在学习C++时,碰到过以下四个以“虚”命名的概念,在系统理解这些高大上的术语后,才发现它们果真“名不虚传”. 为了方便捋清楚这些概念和之间的相互关系,本人对其进行了系统的总结,欢迎讨论. 1. ...
- C++/C语言的标准库函数与运算符的区别new/delete malloc/free
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符.它们都可用于申请动态内存和释放内存.下面来看他们的区别. 一.操作对象有所不同 malloc与free是C++ ...
- 关于Struts2的jsp页面的注释
语句就算用<!-- -->注释后,还是会在编译的时候显示在网页上,而且网页还会报错,因为注释的那些语句也会去编译,也会去检查有没有错误,所以一些注释掉的过时的变量和方法也会导致报错.500
- IE屏蔽鼠标右键、禁止复制粘贴等功能
<body oncontextmenu="return false" onselectstart="return false" ondragstart=& ...
- unity3d绘画手册-------地形高度调节
高度 所有地形 (terrain) 编辑工具的使用都很简单.您可以在场景视图 (scene view)中逐步绘制地形 (terrain).对于高度工具和其他所有工具,您只需选中工具,然后在场景视图 ( ...
- R语言barplot绘图函数
barplot 函数用于绘制柱状图,下面对其常用的参数进行一个详细的解释: 1)height : 高度,通过这个参数可以指定要画多少个柱子以及每个柱子的高度,其值有两种格式, 第一种 :向量 vect ...
- java程序后台报错java.net.SocketException: Too many open files
问题描述: 今天一个同事反映程序有问题,让帮忙查看后台日志,发现后台日志报错的信息如下: java.net.SocketException: Too many open files at java.n ...
- 二:Java之异常处理
一.异常的概念 异常,也就是非正常情况. 其实.异常本质上是程序上的错误,包含程序逻辑错误和系统错误. 错误在我们编敲代码的过程中会常常发生,包含编译期间和执行期间的错误,在编译期间出现的错误有编译器 ...