JAVA总结
/*OOP旨在将现实世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。
1.对象:表示现实世界中的实体,具有明确的状态和行为,描述它是什么和执行什么任务。
每个对象的每个属性都拥有其特有的值,但是属性名称由类的所有实例共享。
2.类:是具有相同属性和共同行为的一组对象的集合,用来定义对象的所有状态和所需操作。
它是一个用于创建对象的模板,每一个对象都是类的一个实例。
(1).语法结构:[访问修饰符] class 类名{}
(2).命名规范:(1).不能为Java中的关键字,不能以数字开头,应尽量使用完整单词。
(2).不能包含任何嵌入的空格或点号以及除下划线和美元字符之外的特殊字符。
(3).类名是一个名词,采用大小写混合的方式,每个单词的首字母要大写。
3.抽象:将重点放在问题上,关注本质(状态和行为)而忽略附属,以对实体进行标示和分组的过程。
4.封装:将相关的方法和属性一起打包并以类的形式实现信息隐藏的处理过程。
(通过访问修饰符和方法修饰符可选择性的将数据隐藏)
5.方法:指定对象以何种方式操作对象的数据。其语法规范与类的相同,可用点操作符来访问。
(1).声明方式:[返回类型] 方法名 [参数列表] {}
(2).实例方法:对象.方法() 可访问实例对象和类变量。
可使用this引用当前方法的对象(this.对象),调用本类的构造方法(this())。
(3).类方法:类名.方法() 声明以static开始,只能访问类变量,不能使用this。
6.构造方法:当使用关键字new创建类的实例时就调用的方法。其与类同名,不具备任何返回类型。
(1).默认构造器:它不带任何参数,其主体不含任何语句。只为对象分配空间。
(2).带参构造器:用来为对象分配空间和初始化属性。可接受参数,还可以重载。
(3).构造器重载:可以用不同的参数再创建一个同名构造方法。
7.包:类似于文件夹,唯一标示每个类并分组。它基本上隐藏了类并避免了名称上的冲突。
(1).声明方式: a.创建包(package 包名;) b.导入包(import 包名.包中的类或接口;)
(2).语法规范:(a).一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名。
(b).包和类之间,类和类之间,方法和方法之间,方法和属性之间,要添加空行区隔。
(c).类名和接口名的每个单词首字母要大写,方法名和变量名的首单词首字母要小写。
*/
//这个类用于查看是否有某一本书
public class Book {
//声明变量(对象的属性)
String bookName;
String authorName;
int nopages;
boolean available;
//默认构造器:仅为对象分配空间
public Book()
{}
//带参构造方法:用于为对象分配空间并初始化
Book(String book, String author, int pages, boolean status) {
bookName = book;
authorName = author;
nopages = pages;
available = status;
}
//用于检查并返回书本的可用性状态
boolean isAvailable() {
if (available) {
System.out.println("有这本书");
return true;
}
else {
System.out.println("没这本书");
return false;
}
}
/*main方法是程序入口:
1.一个复杂的程序会有多个类,但是只有一个类具有main()。
2.main()前必须有访问修饰符public和方法修饰符static。
3.void表明执行main()时不会返回任何值;String[] args是传递给main()的参数。
*/
public static void main(String[] args) {
Book objBook = new Book("Rose", "Stone", 33, false); //创建实例为对象传值
User objUser = new User(); //创建实例为对象分配内存
objUser.getBookStatus(objBook); //调用方法以传值(类型,顺序,数据必须相同)
//objBook.isAvailable()可以直接实现User类的功能,但这是一种面向过程的思维方式。
}
}
//这个类用于获取书本的可用性状态
class User {
//用于调用Book类中的isAvailable方法
void getBookStatus(Book obj) {
obj.isAvailable();
}
}
/*Java支持 单一继承(类与类间,接口与接口) 和 多重实现(类与接口间)。
1.继承:是子类对父类的属性和方法的保留。它允许创建层次结构分类以信息隐藏并重用代码。
(1).使用关键字extends来继承类。(创建子类的对象时,对构造方法的调用总是先父类后子类)。
(2).父类的所有方法(构造方法除外)和属性都由子类的对象继承,除非声明为私有使用(private)。
(3).关键字super,可以从子类构造方法中调用父类中的默认构造方法(super())或带参数的
直接构造方法(super(参数)),亦可以访问重写方法的父类中的该方法(super.方法())。
2.多态性:同一个对象对相近的信息 或者 相近的对象对相同的消息 反映出不同的形态。
(1).方法重载:同一类中的方法,名称相同但参数项(类型或数量)不同。
(2).方法重写:父类中的方法在子类中被重新改写。
从子类中调用重写方法时,将总是调用出现在子类中的方法,而父类中的方法将被隐藏。
3.访问修饰符:确定如何访问某个成员。
(1).private:同一个类(使用的主要目的是隐藏数据)
(2).default:同一个包内的类
(3).protected:不同包内的子类
(4).public:不同包并且不是子类
4.方法修饰符:允许为方法设置访问权限。
(1).static:用于变量及方法,甚至不属于方法块中的一段代码快。
(a).成员声明为static后,在创建该类的任何对象之前就可以访问它。
(b).它们只能调用其它静态方法,只能访问静态数据,不能使用关键字this或super。
(2).final:用于类,方法和变量。
(a).变量的内容不能被更改(标示符要大写);对象的引用不能更改(但它的值可以);
(b).父类的方法不能被重写(只能被调用);它类不能继承此类(但此类可继承它类)。
(3).abstract:用于接口,类和方法前。
(a).抽象类(父类仅仅提供此方法的名称和声明,没有方法的主体)指任何包含一个或多个抽象方法的类。
(b).它的子类必须实现在父类中声明的所有abstract方法,否则子类必须声明为抽象类。
(c).它不能被实例化,但可以用来创建对象引用。构造方法和static类方法不能声明为abstract。
5.接口:它的所有方法都是抽象方法。它可以被多个类实现,一个类也可以实现多个接口。
(1).创建接口:使用关键字interface定义(如:public interface 接口名{})。
(a).接口中的所有方法(仅仅是声明或定义,而不要求去实现)必须是public类型或默认类型;
所有数据均为静态常量,但必须赋初值(如:public static final int a = 100;)。
(b).类如果继承了类和接口,必须将类写前面,接口写后面,之间要用逗号分隔。
(c).接口可以通过使用关键字extends继承其它接口(单一继承,多重实现)。
(2).实现接口:使用关键字implements定义(如:class 类名 implements 接口名{})。
(a).接口中的所有方法必须在实现类中实现,否则该类必须声明为抽象类。
(b).实现接口类中的所有方法必须有关键字public.
(c).接口就是某个事物对外提供的一些功能的声明。
*/
1.对象:表示现实世界中的实体,具有明确的状态和行为,描述它是什么和执行什么任务。
每个对象的每个属性都拥有其特有的值,但是属性名称由类的所有实例共享。
2.类:是具有相同属性和共同行为的一组对象的集合,用来定义对象的所有状态和所需操作。
它是一个用于创建对象的模板,每一个对象都是类的一个实例。
(1).语法结构:[访问修饰符] class 类名{}
(2).命名规范:(1).不能为Java中的关键字,不能以数字开头,应尽量使用完整单词。
(2).不能包含任何嵌入的空格或点号以及除下划线和美元字符之外的特殊字符。
(3).类名是一个名词,采用大小写混合的方式,每个单词的首字母要大写。
3.抽象:将重点放在问题上,关注本质(状态和行为)而忽略附属,以对实体进行标示和分组的过程。
4.封装:将相关的方法和属性一起打包并以类的形式实现信息隐藏的处理过程。
(通过访问修饰符和方法修饰符可选择性的将数据隐藏)
5.方法:指定对象以何种方式操作对象的数据。其语法规范与类的相同,可用点操作符来访问。
(1).声明方式:[返回类型] 方法名 [参数列表] {}
(2).实例方法:对象.方法() 可访问实例对象和类变量。
可使用this引用当前方法的对象(this.对象),调用本类的构造方法(this())。
(3).类方法:类名.方法() 声明以static开始,只能访问类变量,不能使用this。
6.构造方法:当使用关键字new创建类的实例时就调用的方法。其与类同名,不具备任何返回类型。
(1).默认构造器:它不带任何参数,其主体不含任何语句。只为对象分配空间。
(2).带参构造器:用来为对象分配空间和初始化属性。可接受参数,还可以重载。
(3).构造器重载:可以用不同的参数再创建一个同名构造方法。
7.包:类似于文件夹,唯一标示每个类并分组。它基本上隐藏了类并避免了名称上的冲突。
(1).声明方式: a.创建包(package 包名;) b.导入包(import 包名.包中的类或接口;)
(2).语法规范:(a).一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名。
(b).包和类之间,类和类之间,方法和方法之间,方法和属性之间,要添加空行区隔。
(c).类名和接口名的每个单词首字母要大写,方法名和变量名的首单词首字母要小写。
*/
//这个类用于查看是否有某一本书
public class Book {
//声明变量(对象的属性)
String bookName;
String authorName;
int nopages;
boolean available;
//默认构造器:仅为对象分配空间
public Book()
{}
//带参构造方法:用于为对象分配空间并初始化
Book(String book, String author, int pages, boolean status) {
bookName = book;
authorName = author;
nopages = pages;
available = status;
}
//用于检查并返回书本的可用性状态
boolean isAvailable() {
if (available) {
System.out.println("有这本书");
return true;
}
else {
System.out.println("没这本书");
return false;
}
}
/*main方法是程序入口:
1.一个复杂的程序会有多个类,但是只有一个类具有main()。
2.main()前必须有访问修饰符public和方法修饰符static。
3.void表明执行main()时不会返回任何值;String[] args是传递给main()的参数。
*/
public static void main(String[] args) {
Book objBook = new Book("Rose", "Stone", 33, false); //创建实例为对象传值
User objUser = new User(); //创建实例为对象分配内存
objUser.getBookStatus(objBook); //调用方法以传值(类型,顺序,数据必须相同)
//objBook.isAvailable()可以直接实现User类的功能,但这是一种面向过程的思维方式。
}
}
//这个类用于获取书本的可用性状态
class User {
//用于调用Book类中的isAvailable方法
void getBookStatus(Book obj) {
obj.isAvailable();
}
}
/*Java支持 单一继承(类与类间,接口与接口) 和 多重实现(类与接口间)。
1.继承:是子类对父类的属性和方法的保留。它允许创建层次结构分类以信息隐藏并重用代码。
(1).使用关键字extends来继承类。(创建子类的对象时,对构造方法的调用总是先父类后子类)。
(2).父类的所有方法(构造方法除外)和属性都由子类的对象继承,除非声明为私有使用(private)。
(3).关键字super,可以从子类构造方法中调用父类中的默认构造方法(super())或带参数的
直接构造方法(super(参数)),亦可以访问重写方法的父类中的该方法(super.方法())。
2.多态性:同一个对象对相近的信息 或者 相近的对象对相同的消息 反映出不同的形态。
(1).方法重载:同一类中的方法,名称相同但参数项(类型或数量)不同。
(2).方法重写:父类中的方法在子类中被重新改写。
从子类中调用重写方法时,将总是调用出现在子类中的方法,而父类中的方法将被隐藏。
3.访问修饰符:确定如何访问某个成员。
(1).private:同一个类(使用的主要目的是隐藏数据)
(2).default:同一个包内的类
(3).protected:不同包内的子类
(4).public:不同包并且不是子类
4.方法修饰符:允许为方法设置访问权限。
(1).static:用于变量及方法,甚至不属于方法块中的一段代码快。
(a).成员声明为static后,在创建该类的任何对象之前就可以访问它。
(b).它们只能调用其它静态方法,只能访问静态数据,不能使用关键字this或super。
(2).final:用于类,方法和变量。
(a).变量的内容不能被更改(标示符要大写);对象的引用不能更改(但它的值可以);
(b).父类的方法不能被重写(只能被调用);它类不能继承此类(但此类可继承它类)。
(3).abstract:用于接口,类和方法前。
(a).抽象类(父类仅仅提供此方法的名称和声明,没有方法的主体)指任何包含一个或多个抽象方法的类。
(b).它的子类必须实现在父类中声明的所有abstract方法,否则子类必须声明为抽象类。
(c).它不能被实例化,但可以用来创建对象引用。构造方法和static类方法不能声明为abstract。
5.接口:它的所有方法都是抽象方法。它可以被多个类实现,一个类也可以实现多个接口。
(1).创建接口:使用关键字interface定义(如:public interface 接口名{})。
(a).接口中的所有方法(仅仅是声明或定义,而不要求去实现)必须是public类型或默认类型;
所有数据均为静态常量,但必须赋初值(如:public static final int a = 100;)。
(b).类如果继承了类和接口,必须将类写前面,接口写后面,之间要用逗号分隔。
(c).接口可以通过使用关键字extends继承其它接口(单一继承,多重实现)。
(2).实现接口:使用关键字implements定义(如:class 类名 implements 接口名{})。
(a).接口中的所有方法必须在实现类中实现,否则该类必须声明为抽象类。
(b).实现接口类中的所有方法必须有关键字public.
(c).接口就是某个事物对外提供的一些功能的声明。
*/
【用邮箱推荐给好友】
