目录
1.什么是对象?
俗话说万物皆可为对象,对象代表现实世界中可以明确标识的一个实体。并且每个对象都有增加独特的标识,状态(属性)和行为(方法)。
1-1.对象的状态?
就是对象的属性或者说是对象的特征。状态是描述对象的属性。
1-2.什么是对象的行为?
就是这个对象有什么动作,或者说是由什么功能。而这个动作是由方法去定义的。例如:猫会跑,狗会叫,羊会吃草。这些都对象的动作,即为对象的方法。
2.什么是类?
类为对象定义属性个行为。例如:猫,狗,羊,这三个都属于动物,那么动物就是类,猫,狗,羊就是动物的其中三个对象。
其次类是一个模板,例如动物是一个类,这个类里面定义了三个属性即为名字,体重,性别。当我们对类进行实例化时,每一个实例化对象都具有这三个属性。(例如对动物实例化一个猫,这个猫就具有名字,体重,性别这三个属性)。
2-1类的关系
关联:描述两个类之间的活动。例如学生选取课程是student类和course类之间的一种关联。
聚集:是关联的一种特殊形式,代表了两个对象之间的归属关系。
所有者对象成为聚集对象 对应类称聚集类 ,从属对象称被聚集对象 所对应类称被聚集类。
组合:如果一个对象只归属一个聚集对象,那么它和聚集对象之间的关系称为组合。
2-2包装类
将基本数据类型并入对象或包装成对象(int---Integer类,double---Double类,char---Character类....)
2-2-1基本数据类型和包装类类型之间自动转换
基本数据类型转换为包装类对象的过程叫装箱。反之叫开箱。
例如:Integer[] inArrat={1,2,3};
System.out.println(intArrat[0]+intArrat[1]+intArrat[2]) //自动转换为int,然后相加
2-3java语言的根类
Object类是Java语言的根类,要么是一个类的直接父类,要么就是一个类的间接父类.
3.什么是实例化?
创建实例的过程称为实例化。(就是对类进行具体描述。例如:动物 ,对动物再具体实例 人, 猫,狗,羊.....)
4.类和对象的关系
两个之间的关系类似于苹果派配方和苹果派之间的关系。
5.定义一个类和创建一个对象
类是对象的定义,对象从类创建。
定义一个类public class+类名称{ } (也可以不用加public)
创建一个猫对象:类名 +猫 = new 类名();
6.如何调用对象属性?
每创建一个对象,这个对象就具有类的方法,属性。
调用:对象名.属性(方法)
class animal { //定义了一个动物类
String name; //定义动物的名字
double weight; //体重
String gender ; //性别
public static void main(String[] args) { //主类
animal cat=new animal(); //创建了一个类对象,这个对象叫猫
cat.gender="公的"; //给猫的性别输入内容,公的
System.out.println(cat.gender);
}
}
7.调用
1.同一个类内,可以用this可以调用方法。
public class one1 {
public void method(){
System.out.println("这是1的第一个方法");
}
public void method4(){
System.out.println("这是1的第二个方法");
this.method();
}
2.在同一个包,但不在同一个类。需要new一个实例,用实例去调用。
public class one1 {
public void method(){
System.out.println("这是1的第一个方法");
}
public void method4(){
System.out.println("这是1的第二个方法");
this.method();
}
public class one2 {
public void method3(){
System.out.println("这是one2第一个方法3");
one1 one=new one1();
one.method();
}
}
3.挎包调用,也是new一个实例,用实例调用。还需要调包。
import two.two1;
public class one1 {
public void method(){
System.out.println("这是1的第一个方法");
}
public void method4(){
System.out.println("这是1的第二个方法");
this.method();
two1 two1=new two1();
two1.method1();
}
}
package two;
public class two1 {
public static void method1 (){
System.out.println("这是2的第一个方法");
}
}
3.类名可以调用静态属性和静态方法
public class kkk {
private int a=10;
int b=20;
static int c=1;
public static void method(){
System.out.println("这是个静态方法");
}
public static void main(String[] args) {
kkk one=new kkk();
System.out.println(kkk.c);
kkk.method();
}
}
7.实例化顺序
父类优先,静态优先,属性优先