一、面向对象技术
- 对象和类的定义
对象是类的一个实例,有状态和行为。
类是一个模板,它描述一类对象的行为和状态。
比如说我定义了一个汽车类,而兰博基尼、劳斯莱斯则是该汽车类的对象。
类中由方法和属性组成,而对象则继承了类中的方法和属性;
class Car {
String color;
String type; //类的属性
void run(){
}
void name(){ //类的方法
}
}
public class Study1 {
public static void main(String[] args) {
//创建类的对象
Car c=new Car();
c.run();
c.name();
System.out.println(c.color);
System.out.println(c.type);//方法和属性全部继承
}
}
- this关键字的使用
this关键字可用来修饰属性、方法、构造器。
其中在属性和方法中,其中在属性和方法中,this可以理解成当前对象或者当前正在创建的对象。
方法或属性中调用其他的属性或者方法其实都有隐性的this在所调用方法或属性前。
public class ThisStudy {
public static void main(String[] args) {
People p=new People();
p.run();
}
}
class People{
int sex;
int age;
void run(){
System.out.println("run fast!");
this.eat();
// eat();
}
void eat(){
System.out.println("吃饭!");
}
}
可以看到对eat()方法的调用,编译结果都是
run fast!
吃饭!
不过要注意“this(形参列表)”必须声明在首行。
- 构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
public class Study1 {
public static void main(String[] args) {
//创建类的对象
Car c=new Car("兰博基尼");
c.run();
System.out.println(c.color);
System.out.println(c.type);//方法和属性全部继承
}
}
/*
创造了一个车类
*/
class Car {
String color;
String type; //类的属性
//构造方法。
//name 表示需要传入的参数。
public Car(String name){
System.out.println("车的名字:"+name);
}
//类的方法
void run(){
System.out.println("run is fast!");
}
}
打印出的值是
车的名字:兰博基尼
run is fast!
null
null
- 对老师给出题目的解答
试编写一个JAVA程序,实现加法器的简单功能。能实现以下功能:
- 有两个属性,两个操作数,可以为整数。
- 通过构造方法来初始化加法的两个属性,即操作数
- 在实例化一个加法器对象时,可以通过指定两个操作数来初始化加法的两个操作元。
- 调用加法方法,可以实现加法
- 调用输出方法,可以实现将该对象的加法结果输出出来。
- 实例化三个具有不同的操作数的加法器对象,并输出这三个对象的加法结果
public class ThisStudy {
public static void main(String[] args) {
//实例化Addtion的三个对象
Addition a1=new Addition(4.5,3.3);
Addition a2=new Addition(4.6,3.2);
Addition a3=new Addition(4.7,3.1);
a1.output();
a2.output();
a3.output();
}
}
class Addition{
//定义两个属性
double number1,number2;
//重构Adition的构造方法,并初始两个属性
public Addition(double number1,double number2){
this.number1=number1;
this.number2=number2;
}
//定义加法方法
double add(){
return number1+number2;
}
//定义输出方法
void output() {
System.out.println(add());
}
}