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: ...
随机推荐
- eclipse安装中文补丁包
第一步:打开http://www.eclipse.org/babel/ 第二步:找到downloads. 第三步:点击Oxygen. 第四步:找到简体中文的zip插件并兵下载. 第五步:解压. 第六步 ...
- CF555B 贪心
http://codeforces.com/problemset/problem/555/B B. Case of Fugitive time limit per test 3 seconds mem ...
- elasticsearch安装与使用(5)-- search guard安装与配置
一.安装search guard插件必须要安装两部分: ①search-guard-xx ②search-guard-ssl (XX指的是与elasticsearch引擎对应的版本) github地址 ...
- Linux下如何查看tomcat是否启动/系统日志等
Linux下如何查看tomcat是否启动/系统日志等 查看tomcat是否启动 ps -ef | grep tomcat 或者 ps -ef | grep java 启动tomcat(在tomca ...
- Quill + Framework 7 移动端无法获取焦点
Quill 是一个轻量级的富文本编辑器.最近公司项目中需要用到这个东东.使用方法可以直接查看它的官网地址或者Github地址: Github地址:quilljs 官网地址:quill官网 主要说一下用 ...
- 判断IE浏览器的最简洁方法
<script type='text/javascript'> var ie = !-[1,]; alert(ie);</script>
- 一些必看的jQuery导航插件和教程
导航是一个网站最重要的元素之一,您必须遵循统一的风格来设计您的网站,特别是导航的风格,让用户可以轻松地找到他们想要的内容.这里最大的部分是开发一个菜单,即要直观易用,又要符合你网站的设计风格.本文列举 ...
- Session和几种状态保持方案理解
一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的. session, ...
- MySQL常用shell语句
1.连接数据库 格式:mysql -h ip -P port -u user -p 2.修改某一列的值 格式:update tablename set column1 = 'xxx', column2 ...
- Sublime Text3打造U盘便携Lua IDE
下载Sublime Text 链接http://www.sublimetext.com/3 我下载的是win32 portable 版 便于放入U盘携带 解压 注冊: 能够复制下面部分直接贴入注冊栏 ...