一、编程思想
java是面型对象的编程语言,而面向对象又是什么呢???面向过程呢?
面向对象和面向过程其实都是编程思路。举一个例子,做一件事:把大象放到冰箱中。做这件事的思路有两种,面向过程思路:按照步骤依次执行程序,大象放到冰箱前->冰箱门打开->大象放进去->关门,重点是做事。面向对象思路:首先区抽离出参与的对象,然后,调用对象相关方法完成执行程序需求。抽离出大象、冰箱两个对象,创建类,大象类有,大耳朵长鼻子体重,身高,跑跳走方法等等单独定义出来;冰箱类有尺寸,制冷,冰箱门开,冰箱门关等等方法。调用大象的走动作->调用冰箱的开门动作->调用大象的走动作->调用冰箱的关门动作。
这两个有什么区别呢?面向对象的方式,不仅可以做这件事,用大象和冰箱做其他事情的时候不用一步一步书写,只需对设定好的已有的方法进行调用即可,如果不够就再去补大象的方法或冰箱的方法,面向对象的思路就是高内聚低耦合(提高代码的可复用性,便于维护可扩展)。面向过程不考虑到底建什么关系,今天做大象放冰箱的事写一遍,明天做大象吃饭的事再写一遍,以后大象的事情就会重复的书写,改的话都改。
二、面向对象学习的三个路线
类和对象
public class Cat {
public static void main( string[] args) {
Cat cat = new Cat();//类的实例化,实质就是在堆内存中开辟内存空间
//cat():实际开辟内存空间的类型
//new:关键字--》告诉虚拟机在内存中开辟空间的标志
//cat :具体的对象
//Cat :具体的数据类型
}
}
方法
1、普通方法
//方法重载
public int add(int a,int b) {
return a+b;
}
public Double add(Double a,Double b) {
return a+b;
}
public Double add (Double a,int b) {
return atb;
}
public Double add( int a,Double b) {
return a+b;
}
2、构造方法
public class Cat{
public String name;
public string sex;
public int age;
//构造方法
public Cat(){}
//重载
public Cat(String a){}
//初始化对象
public Cat(String name,String sex,int age) {
this.hame = name;
this.sex = sex;
this.age = age;
} //Cat cat = new Cat("gs","公”,1);
}
3、this方法
public class Cat{
public String name;
public String sex;
public int age;
public Cat(){
//5.可以在构造方法中调用其他构造方法
this("ss","公",6);
System.out.print1n("无参");
//7.this()在构造方法中使用必须是第一行
//this("ss","公",6);//报错
}
public Cat(String name,String sex,int age) {
//8.两个构造方法不能通过this()相互调用
//this();//出错 会出现反复调用
this.hame = name;
this.sex = sex;
this.age = age;
}
public String getName() {
//3.在一个对象方法中调用另一个对象方法
this.setName();
return name;
}
public void setName(String name) {
String sex = "sdf";
System.out.print1n(sex);//2.哪个sex是属性还是方法中的变量?需要加this区分System.out.print1n(this.sex)
this.name = name;
}
//静态方法
public static int getCount() {
//4.静态(类)方法中不能使用this
String a = this.name;//报错
this.getName();//报错
return 10;
}
}
-----------------------------
public class Dog {
public static void main( String[] args) {
//1.this代表当前对象
Cat cat= new Cat("hh","公",1);
System.out.print1n(cat.getName());//输出hh
Cat cat1 = new Cat("hh1","母", 3);
System.out.println(cat1.getName());//输出hh1
}
}