ä¸ã Eclipse日食
是IBM使用纯java开发的,一个主要用于java应用程序开发的,一个集成开发环境(IDE)。可以帮助我们快速的开发java 项目。
bug:虫子。在软件行业中的bug 就是程序中的错误。
debug:调试错误、解决错误的过程。
äºã 面向对象
还有两天就是520了,快给自己new 一个对象吧 = =!
面向对象和面向过程不是矛盾的。面向对象的过程中包含了面向过程。
ï¼ä¸ï¼ 面向过程:
面向过程的软件的开发的基本思路:
将一问题按照过程,划分成若干个功能模块。然后按照过程的要求,将几个功能模块代码顺序执行。
可以大概的理解为是一个线性的执行的过程。
面向过程开发的问题:
1:软件规模越来越大,问题越来越复杂,那么使用线性的思维模式,去解决难度越来越大,复杂程度越来越高。后期维护也比较困难。
2:代码的复用性很差。
ï¼äºï¼ 面向对象:
需求:大象装冰箱
面向过程的方式:
1:把冰箱门打开
2:把大象装进去
3:把冰箱门带上
面向对象的编程思维:
1:分析:分析需求中包含了几个对象?
结果:2个对象 大象 和 冰箱。
找对象:名词分析法。
2:继续分析:
对象 具有 什么样的功能 和 属性 就可以解决我们的需求!
冰箱需要的功能:会开门,关门。
大象需要的功能:会钻冰箱。
确定对象的功能+属性
3:如何去创建具有指定(分析而来的)功能和属性的对象?
1:需要使用java 代码先去描述具有指定功能和属性的对象。描述完毕之后才能创建具有指定功能的对象。
2:如何描述具有指定功能的对象??
使用类来描述:类就是用来描述具有指定功能对象的。
3:创建2个类,一个描述大象的类,一个描述冰箱的类。
描述对象通过类。
4:如何使用描述对象的 类 去创建 对象。
//创建冰箱
Fridge fridge = new Fridge();
//创建大象
Elephant elephant = new Elephant();
创建对象
5:使用创建的对象去完成需要的功能即可。
//让创建的对象去执行他们具有的功能完成最后的需求
fridge.openDoor();
elephant.enterFridge();
fridge.closeDoor();
对象执行自己的功能
例:
/**
* 使用面向过程的方式去解决大象装冰箱
* @author
*
*/
public class TestProcess {
public static void main(String[] args) {
openFridgeDoor();
elephantInFridge();
closeFridgeDoor();
}
//功能模块1
public static void openFridgeDoor(){
System.out.println("冰箱门被打开了!");
}
//功能模块2
public static void elephantInFridge(){
System.out.println("大象钻进了冰箱!");
}
//功能 模块3
public static void closeFridgeDoor(){
System.out.println("冰箱门被关上了!");
}
}
/**
* 使用面向对象的思维方式解决大象装冰箱!
* @author
*/
public class TestElephantAndFridge {
public static void main(String[] args) {
//创建冰箱
//创建了一个具有开门和关门功能的冰箱对象
Fridge fridge = new Fridge();
fridge.capacity = 30;
fridge.name = "海尔";
//创建大象
Elephant elephant = new Elephant();
elephant.size = 50;
elephant.name = "艾利";//小P优优。
//让创建的对象去执行他们具有的功能完成最后的需求
fridge.openDoor();
elephant.enterFridge(fridge);
fridge.closeDoor();
}
}
//创建一个描述冰箱的类
//Fridge 这个类 描述了一种类型 ,这种类型的对象 具有开门和关门的功能。
class Fridge{
//冰箱容积的属性
int capacity;
String name;
//所有对冰箱的描述都要在 类的大括号中进行,类体中进行
//开门
void openDoor(){
System.out.println(name + "\t冰箱门打开了!");
}
//关门
void closeDoor(){
System.out.println(name + "\t冰箱门关上了!");
}
}
//创建一个描述大象的类
class Elephant{
//大象体积的属性
int size;
String name;
//钻冰箱的功能
//大象在使用这个功能的时候,需要外部提供一个冰箱。提供一个会开门和关门的冰箱。
void enterFridge(Fridge fridge){
if(size <= fridge.capacity){
System.out.println(name + "\t一头纤细的大象钻到了冰箱里面!");
}else{
System.out.println(name + "\t大象大象,你该减肥了!");
System.out.println(name + "\t大象:健康就好,胖瘦总相宜!");
}
}
}
ä¸ã 类
概念:类是对对象的抽象描述。
对象:类的一个具体的实例。
类:树-->一种类型,有树干,有树叶。
对象:门口的那棵树:树这种类型中的一个具体的实例。
类的语法:
[类的各种修饰符 public] class 类名{
//类体 功能 + 属性
}
功能:方法。
作用:实现了某些功能、修改对象的属性。
属性:java 支持的任意类型的变量的声明语法。
例子:int size;
String name;
例1:
使用面向对象的方式描述 农夫与蛇 。
1:找对象:蛇、农夫
2:确定对象的属性和功能
功能:
蛇:苏醒、咬人
农夫:救蛇 死亡
3:创建类描述对象。
class Farmer{}
class Snake{}
4: 通过类创建对象。
5:让对象去执行对应的功能。
public class TestFarmerAndSnake {
public static void main(String[] args) {
//创建对象
Farmer farmer = new Farmer();
Snake snake = new Snake();
farmer.save(snake);
snake.attack(farmer);
}
}
//创建Farmer 类来描述农夫
class Farmer{
void save(Snake snake){
System.out.println("农夫救了一条冻僵的蛇!");
snake.awake();
// snake.attack(farmer);
}
void die(){
System.out.println("农夫死亡了!");
}
}
class Snake{
void awake(){
System.out.println("冻僵的蛇苏醒了!");
}
void attack(Farmer farmer){
System.out.println("蛇攻击了农夫!");
farmer.die();
}
}
例2:树的生长
public class TestTree {
public static void main(String[] args) {
Tree tree = new Tree();
tree.age = 1;
tree.height = 20;
tree.show();
//生长 十年
for(int i=0;i<10;i++){
tree.grow();
}
tree.show();
}
}
//树的功能:grow 属性:height age
class Tree{
int height;
int age;
// 方法被执行一次,代表 树生长了一年
void grow(){
age++;
height += 10;
}
//展示树的属性 方便展示获得树的属性的信息,
void show(){
System.out.println("age = "+ age + "\theight = "+height);
}
}
åã 类和对象的比较
概念:
类:对指定功能的对象的抽象的描述。
对象:类的一个具体的实例。
类和对象的关系:
类是描述对象的。
对象是类的一个具体的实例。
思考:先有对象还是先有类?
1:从分析的过程考虑:先有对象,然后在定义类来描述对象。(精神层面)。
2:从编码的角度:先定义类,然后通过类创建对象。
3:现实世界:先认识对象,然后将同类型的对象归纳为了一类事物。
类:模版
对象:通过模版创建的各种对象。
类:比作一张图纸。
对象:通过图纸创建的一个具体的建筑。
面向对象如何实现需求:创建具有各种功能的对象,通过对象之间的相互作用实现最终的需求。