一、java面向对象的三大特性
继承、封装和多态
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类:类是一个模板,它描述一类对象的行为和状态。
二、java中的类
类可以看成是创建 Java 对象的模板。
通过上图创建一个简单的类来理解下 Java 中类的定义:
package com.zhouzy.base.t2;
public class Dog {
String type; //品种
int size; //大小
String color; //颜色
int age; //年龄
void eat() {
}
void run() {
}
void sleep(){
}
void name(){
}
}
一个类可以包含以下类型变量
1、局部变量
在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
2、成员变量
成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
3、类变量
类变量也声明在类中,方法体之外,但必须声明为 static 类型。
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法。
三、构造方法
方法名跟类名一致,一个类可以有多个构造方法
比如:
public Dog(){
}
public Dog(String type,int size,String color,int age){
this.type = type;
this.size = size;
this.color = color;
this.age = age;
}
四、创建对象
创建对象分为三步:声明对象->实例化(new)->初始化(调用构造方法初始化对象)
public static void main(String[] args) {
Dog dog1 = new Dog();
Dog dog2 = new Dog("泰迪",15,"白色",2);
}
五、java包
包主要用来对类和接口进行分类。当开发 Java 程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。
比如:
package com.zhouzy.base.t2;
六、import 语句
在 Java 中,如果给出一个完整的限定名,包括包名、类名,那么 Java 编译器就可以很容易地定位到源代码或者类。import 语句就是用来提供一个合理的路径,使得编译器可以找到某个类。
例如,下面的命令行将会命令编译器载入 java_installation/java/io 路径下的所有类
import java.util.*;
七、实例
package com.zhouzy.base.t2;
import java.util.*;
public class Dog {
public Dog(){
}
public Dog(String type,int size,String color,int age){
this.type = type;
this.size = size;
this.color = color;
this.age = age;
}
private String type; //品种
private int size; //大小
private String color; //颜色
private int age; //年龄
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
void eat(String name) {
System.out.println(name+"在吃饭");
}
void run(String name) {
System.out.println(name+"在跑步");
}
void sleep(String name){
System.out.println(name+"睡觉了,当前时间:"+new Date());
}
void name(String name){
System.out.println("我叫:"+name);
}
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.setType("藏獒");
dog1.setSize(20);
dog1.setColor("黑色");
dog1.setAge(10);
Dog dog2 = new Dog("泰迪",15,"白色",2);
System.out.println(dog1.getType()+":"+dog1.getSize()+":"+dog1.getColor()+":"+dog1.getAge());
System.out.println(dog2.getType()+":"+dog2.getSize()+":"+dog2.getColor()+":"+dog2.getAge());
dog1.eat("黑子");
dog2.sleep("小白");
}
}