java--面向对象

来源:互联网 发布:淘宝钻展怎么弄啊 编辑:程序博客网 时间:2024/06/06 07:53
/*
java面向对象的语言


对象:真实存在唯一的事物


比如:我家的狗


类:实际是上就是对某种类型事物的共性属性与行为的抽取。抽象的概念。。。


类----->对象


图纸----->真实存在的事物


  我们从小的时候就不断的接触很多的对象,
  我们的大脑就会把这些具备相同属性与行为的事物进行分类


  在现实生活中就存在对象与类这两种事物。计算机是服务于人类的,为了让计算机更加接近我们的生活
  这时候就出现了面向对象的计算机语言。


  面向过程(c)侧重于过程,动作的执行者
        买电脑
  比如:1.自己查资料
        2.自己写配置单标明价钱
3.师兄敲门,想黑你
4.拿配置单去 百脑汇
5.买了翻新机回来了


找对象:
      1.自己摇一摇
 2.看到一个不错的照片
 3.自己约见
 4.感叹ps技术强大
 5.安装默默
 6.又有照片不错的
 7.约见
 8.遇到了酒托9.发誓永远不找对象


  面向对象(java)侧重于对象,找适合的对象做适合的事情  ,动作的指挥者


  买电脑
    1.找老表(修电脑)
2.师兄上门找你,你叫他找老表
3.老表自己去百脑汇
4,商家想黑老表,老表还可以黑回老表
5,老表扛着电脑给你


找对象:
    1.找大型的婚戒公司
2.告诉你的要求
3.遇到符合你要求的时候,电话通知面试
4.结婚了


现实生活中:对象---->类
在Java中:类----->对象


面向对象的计算机语言的核心思想:找适合的对象做适合的事情




如何找适合的对象:
    1.sun已经定义好了很多的类,我们只需要认识这些类,我们就可以通过这些类创建对象使用。
2.自定义类,通过自定义类来创建对象使用


自定义类的三步骤:


1.自定义类
         格式:
    class 类名{
  事物的公共属性使用成员属性描述
  事物的公共行为使用函数描述
}
2.通过自定义类创建对象
       格式:new 类名()




3.访问(设置)对象的属性或者调用对象的功能。


   1.访问对象属性的格式:
       对象.属性名
2.设置对象的属性:
  对象.属性名=数据;
3.调用对象的功能
对象.函数名






注意:成员属性是有默认初始值的


数据类型    默认的初始值


int       0
    float     0.0f
    double    0.0
char      ""
String    null
引用数据类型 null
对象一旦创建,对象的成员变量也会发生分配默认初始值
    




需求:使用Java类描述一个汽车类,汽车具备轮子数,名字,颜色,还具备跑的功能行为




*/


//车类
class Car{
// 事物的公共属性使用成员属性(成员变量)描述   
String name;//名字的属性
String color;//颜色属性
int wheel;//轮子数




//事物的公共行为使用函数描述
public void run(){
System.out.println(name+" 飞快的跑起来了....");
  }


}






class Demo1
{
public static void main(String[] args) 
{
/*
//使用了Car类声明了--c变量,c变量指向了一个车对象;
Car c= new Car();
//设置车对象的属性值
c.name="RAW";
c.color="白色";
c.wheel=4;
//访问车对象的属性
System.out.println("名字: "+c.name + " 颜色: "+c.color+" 轮子数: "+c.wheel);
        c.run();
*/


Car c1 = new Car();
c1.name = "宝马";
Car c2 = new Car();
c2.name = "大众";
c1 = c2;
System.out.println("名字: " +c1.name);//大众

}

}




/*
需求:使用java描述一个车与修车厂两个事物,车具备的公共属性:轮子数、名字、颜色、还具备跑的功能行为。跑之前要检测轮子
是否少于了4个,如果少于了4个,那么要送到修车厂修理,修车厂修理之后,车的轮子数要补回来4个,然后车就继续跑起来了。


修车厂:具备公共属性:名字,地址,电话。
        公共行为:修车




初学者的经典错误:
    1.不在同一个范围内,随意的引用了变量.变量在同一个作用域上是可以直接访问的


2.如果一个类要访问另外一个类的变量时,那么这是时候就只能通过对象进行访问了(仅对于目前正确)
*/




class Car{


//事物的公共属性使用成员变量描述
String name;//名字属性

String color;//颜色
int wheel;//轮子数
//事物的公共行为使用函数来描述
public void run(){
if (wheel>=4){
System.out.println(name + "飞跑起来了");




}else{
System.out.println(name + "不够四个轮子赶快去修理" );

}


}


}


//修车厂


class CarFactory{
String name ;//名字
String address;//地址
String tel;//电话


//修车的公共行为--------返回值类型,未知参数
public Car repair(Car c){
if (c.wheel>=4){
System.out.println("告诉你很大力气修好了,给钱");
}else{
c.wheel = 4;
System.out.println("修好了,给钱");
}
return c;



}
}
class Demo2 
{
public static void main(String[] args) 
{
/*
Car c= new Car();
//给车对象赋予属性值
c.name = "陆丰";
c.color = "黑色";
c.wheel = 4;
for (int i =0; i<100;i++ )
{
c.run();
}
c.wheel = 3;
c.run();
//创建修车厂对象
CarFactory f= new CarFactory();
//给修车厂赋予属性值
f.name = "集群宝修车厂";
f.address = "芸薹";
f.tel = "020-1234567";


//调用修车的修车
f.repair(c);
        // 调用
c.run();
*/


//需求:调用一次repair方法.前提:该对象调用玩一个方法之后,这个对象就不再使用了


CarFactory f= new CarFactory();
//Car c=new Car();
f.repair(new Car());
}
}




/*
成员变量与局部变量的区别:
定义的位置的区别:
  1.成员变量时定义在方法之外,类之内的。
  2.局部变量是定义在方法之内。


  作用上的区别:
  1.成员变量的作用是用于描述一类事物的公共属性的。
  2.局部变量作用就是提供一个变量给方法内部使用而已


  生命周期的区别:


  1.随着对象的创建而存在,随着对象的消失而消失
  2.局部变量在调用了对应的方法时,执行到了创建该变量的语句时存在,
    局部变量一旦出了自己的作用域,那么马上从内存中消失。


初始值的区别:
1.成员变量使用默认的初始值的


数据类型    默认初始值
int          0
float       0.0f
double       0.0
boolean     false
char         ''
String(引用数据类型)    null




2.局部变量是没有默认的初始值的,必须要先初始化才能使用(不使用的话可以不用初始化)




*/
//人类
class Person
{
String name;//成员变量
public void eat(){


int age ;
age = 12;
for (int i=0; i<;i++ )
{
System.out.println("hello"+age);


}
/*int age=1;
System.out.println("哈哈");
for (int i= 0;i<5 ;i++ )
{
System.out.println("i="+i);
}
//System.out.println("i=" + i);(i访问不到这里)
*/
}
}


class Demo3 
{
public static void main(String[] args) 
{

Person p1= new Person();
p1.eat();
}
}





/*
匿名对象:没有引用类型变量指向的对象称作为匿名对象


需求:使用java类描述一个学生类


匿名对象的好处:简化书写,节省内存空间


匿名对象要注意的事项:
   1.我们一般不会给匿名对象赋予属性值,因为永远无法获取到
   2.两个匿名对象永远都不可能是同一个对象
匿名对象的应用场景:
    1.如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这个时候就可以使用匿名对象


     2.可以作为实参调用一个函数
*/


class Student{
int num;//学号


String name;//名字
public void study(){
System.out.println("好好学习");
}
}


class Demo4 
{
public static void main(String[] args) 
{
/*
//创建一个学生对象
//Student s=new Student();
//new Student().name= "狗娃";//匿名对象
//System.out.println(new Student().name);//null


//false
System.out.println(new Student()==new Student());//"=="用于引用类型的变量时,比较的是内存地址




        需求:调用Student的study方法。



Student s=new Student();
s.study();




*/
new Student().study();








}
}





原创粉丝点击