创建类与对象
1、定义类名时,首字母要大写,之后的每个有意义的单词也要大写;
2、定义对象名是,首字母要小写,之后的每个有意义的单词也要大写;
方法的作用
类和对象
对象是具体的事物,是类的具体实例
类是抽象的概念,是对象的模板
类包括特征和行为。特征是静态的表现,行为是动态的动作
面向对象编程是利用编程方式体现出现实中的类与对象
Java中创建类的语法:
public class 类名{
//类的内容
}
类的命名规范:
(1)类名要有直白意义,最好是英文;
(2)每个单词的首字母都要大写,比如Dog,BigDecimal;
(3)不要数字开头,不要包含特殊字符;
对象的命名规范:
(1)对象名要有直白意义,最好是英文
(2)第一个单词首字母要小写,剩下的都要大写,比如sam,firstItem
(3)不要数字开头,不要包含特殊字符
访问修饰符
面向对象之封装
封装:
-
封装即隐藏功能的实现细节;
-
良好的封装代码更容易阅读和维护;
-
利用对象与方法是实现封装的直接途径。
-
package com.imooc.objectproject.sample3;
//张三开发的排序算法类
public class Algorithm {
/*
*传入五个数,控制台打印升序效果
* @param a 第一个数
* @param b 第二个数
* @param c 第三个数
* @param d 第四个数
* @param e 第五个数
*/
public void sort(int a , int b , int c , int d , int e){
//冒泡排序法
int [] arr = {a,b,c,d,e} ;
for(int i = 0;i < arr.length - 1;i++){
for(int j =0;j < arr.length - 1 - i;j++){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i] + " ");
}
}
public static void main(String[] args) {
Algorithm algorithm = new Algorithm();
algorithm.sort(82,88,988,223,184);
}
}
成员变量的封装
-
先将成员变量私有化;
-
利用get(),set()方法对其进行访问;
-
访问私有成员变量的方法(在私有成员变量所在的类当中设置getOwner(),setOwner()):
-
访问私有成员变量:getOwner(){return this.owner;};
-
设置私有成员变量:setOwner(String owner){this.owner=owner;}
-
getOwner()/setOwner()方法并不是语法要求,只是利用了Java中方法的特性访问私有成员变量。所以,方法名可以自行设置,只要实现调用和设置私有成员变量的功能即可。
-
多态:同一个行为具有多个不同的表现形式或形态的能力,根据输入的内容不同,去产生不同的接口实现
实现多态的关键是接口
接口:是一个抽象的类型,只提供方法的定
-
义
实现类:是一个借口的具体实现,要实现每一个接口方法的功能
一个接口可以拥有多个实现类
public interface Language{
public void voice();
}
接口里只能定义方法的结构,不允许有方法体{}
实现类要写关键字implements
public class Chinese implements Language{
这里可以点击错误提示的灯泡,选择implement methods,选择要选的方法,点击OK
}
再写一个类,叫做CustomerService,在main方法里以接口Language开头
Language language = new English();
language.voice();
可以这样写
public Language contact(int areaCode){
if (areaCode == 86)
return new Chinese(); //这里可以return任何一个实现类
}
如果是在另一个包里,导入实现类以后,可以用接口来使用程序,而不必了解内部细节
-
ArrayList是Java内置的数据集合,用于存储多个数据;
-
ArrayList是数组替代品,提供了更多的数据操作方法;
-
ArrayList几乎是每个项目中必用的类;
-
ArrayList内部的方法:
-
-
新增数据:add(index,elment);
-
获取数据:get(index);
-
获取数据长度:size();
-
移除数据:remove(index);
-
-
List<设置传入的数据类型(String)。书写可固定类型> objectName = new ArrayList<设置传入的数据类型(String)。书写可固定类型>()
-
遍历:for(type variable:遍历对象):利用一个变量去便利数据集合的每一个数据。