一.对象的定义
对象是事物存在的实体,通常将对象划分为两部分:静态部分和动态部分,静态部分被称为属性,动态部分被称为行为,通过探讨对象的属性和观察对象的行为来了解对象。
二.类
1.类的定义:具有相同特性和行为的一类事物称为类,类是封装对象的属性和行为的载体;
2.类的主方法:类的入口点,定义了程序从何处开始;并提供对程序流量的控制;
格式:public static void main(String[] args){
方法体
}
特点:无返回值;静态的;形参为数组;
3.成员方法:对应于类对象的行为。也称为方法,动态属性。可以有参数。当参数为对象时则建立了类之间的关联关系;
格式:权限修饰符 返回值类型(无返回值写void) 方法名(参数类型 参数名){
方法体 (需要返回值可使用return关键字)
}
4.成员变量:对应于类对象的属性。也称为属性,静态属性。成员变量可以是任意一种类型;
格式:先定义类 ,再定义成员变量。
权限修饰符 class 类名(首字母大写){
权限修饰符 变量类型 变量名(可以设置初始值,如不设置则会有默认初始值)
}
成员变量的默认初始值:
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0D
boolean false
char '/u0000'
引用类型 null (所有的类,所有的接口,所有的数组)
5.局部变量:在成员方法内定义的变量,在方法被执行时创建,在方法执行结束时被销毁,在使用时必须进行赋值或被初始化,否则出现编译错误。
6.类之间的关系:
- 关联关系:定义不明确,关系较弱;分为两种,一种是一个类中的某个方法的参数是另一个类的对象;另一种是一个类中的某个成员变量是另一个类的对象;例:老师和同学的关系:在老师类中定义学生类对象:private Student[] students;在学生类中定义老师类对象:private Teacher teacher;
- 继承关系:什么是一种什么,符合逻辑即可,关键字 extends;
- 聚合关系:1.聚集:不是必不可少的一部分;2.组合:一个类的组合是必不可少的;
- 实现关系:是一种特殊的继承关系;只管结果,不管过程;
7.如何更好的设计一个类:合适的方法出现在合适的类里面。
三.面向对象的特点:
1.封装:是面向对象编程的核心思想,将对象的属性和行为封装起来;类通常对客户隐藏其实现细节,这就是封装的思想;关键字:private/public;
2.继承:类之间的关系被称为关联,继承是关联中的一种,主要利用特定对象之间的共有属性,上级成为父类,下级成为子类,子类的实例都是父类的实例,但不能说父类的实例都是子类的实例;
3.多态:将抽象类对象应用于子类;
四.对象的创建(也称为实例化,造了)
在主方法中格式:类名 对象名 = new 类名();类名 对象名 = new 类名("a");
每实例化一个对象就会自动调用一次构造方法,这就是创建对象的过程,准确说是使用new操作符调用构造方法创建对象。
对象的创建和初始化是被捆绑在一起的,每个对象都是独立的,在内存中占据独立的内存地址,且都有自己生命周期,当一个对象的生命周期结束时,由垃圾回收机制处理,不能再被使用。
五.类的封装
将成员变量的权限设为私有的,关键字private。private关键字修饰的成员变量, 只能在当前类中使用;
为了能够公开使用这个变量,需要用方法将其改为公开的。方法命名必须按照规则;
例定义一个名字变量:private String name;
获取值的方法为:
public String getName(){
return name;
}
修改值的方法为:
public void setName(String name){
this.name = name;
}
修改值的方法可以用来进行某些变量的条件验证,比如年龄。
可以通过alt+shift+s 快捷键快速调出此两种方法。
六.方法的构造
是指用来构造一个对象的方法。当实例化一个对象时,类都会自动调用构造方法。
在构造方法中可以为成员变量赋值,当实例化一个对象时,相应的成员变量也会被初始化。
构造方法特点:
1. 构造方法没有返回值, 也不能写void。
2. 构造方法名与类名一模一样。
3. 定义一个类的时候, 如果没有写任意的一个构造方法, 则默认生成一个空参的构造方法,可以在这个方法内对成员变量进行初始化。
4. 当一个类中有定义的带参数的构造方法的时候, 则默认空参的构造方法会消失,此时构成构造方法的重载,当需要使用空参方法实例对象时,需要再写一个空的构造方法。
七.控制台输入
例题
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //System.in在这表示一个输入流 创建了一个新的扫描器,并打开了这个流
System.out.println("请输入第一个数字: ");
String s1 = scanner.nextLine(); //程序会停止并接收输入控制台的命令,以回车结束再运行。
System.out.println("请输入第二个数字: ");
String s2 = scanner.nextLine(); //
int i1 = Integer.parseInt(s1); //使用包装方法将字符串转化为整型。
int i2 = Integer.parseInt(s2);
System.out.println("这两个数字相加的结果是: " + (i1 + i2));
scanner.close(); //打开后需要手动关闭这个流
}
}