Java学习day7面向对象编程1-对象和类

一、Java编程中对象和类的概念

1,什么是类?

答:类是客观存在的,抽象的,概念的东西。

2,什么是对象?

答:对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。

关于类与对象的描述:类是对象的模版,对象是类的一个个体

3.类的语法格式

修饰符 class 类名{
      属性声明;
      方法声明;
}

说明:1.修饰符public:类可以被任意访问

   2.类的正文要用{ }括起来

 

4.对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

1.对象声明:类名 对象名;//声明一个对象,包括对象名称和对象类型。
2.实例化: 对象名 =  new 类名(); new作用:分配内存空间。
3.初始化:使用new创建对象时,会调用构造方法初始化对象。
也可以合写为:类名 对象名 = new 类名();
实例:
public class Person{//创建一个可以被任意访问的person类
    //属性声明;也叫成员变量声明。(类的成员变量可以先声明,不用初始化,类的成员变量是有初始值的,例如String的默认值是null,int的默认值是0)
    String name;//声明属性name
    int age;//声明成员变量age
    //方法声明;也叫函数声明。
    public void showName(){//声明方法showName()
    System.out.println(name);
    }
    public int getAge(){//声明方法showAge(),如果是一个有返回值的方法,那么方法体的最后一行一定是返回相对应的数据,使用return关键字,返回的数据类型与方法定义的一致,例如返回age值,上文定义方法为int类型
        return age;
    }
    //主程序
    public static void main(String[] args){//实例化Person类,也就是创建Person对象
    Person per = new Person();//声明一个Person类型的变量,变量名为per,new Person()就是实例化Person类
    per.name = "彭祖";//给per对象的name属性赋值
    per.showName();//对象的方法的调用
    per.age = 800;//给per对象的age属性赋值
    int a = per.getAge();
    System.out.println(a);
    }
}    

 输出结果为:

 
二、对象的创建和使用
  如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰。(类一个,通过类实例化出来的对象可以多个,且每个对象都是独立的)
实例:
public class Student{
    public String name;
    public int age;
    public String course;
    public String interest;

    public void showInfo(){
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("课程:" + course);
        System.out.println("兴趣:" + interest);
    }

    //主程序测试
    public static void main(String[] args){
    Student stu = new Student();
    stu.name = "小明";
    stu.age = 18;
    stu.course = "Java语言";
    stu.interest = "小暗";
    stu.showInfo();
    }
}

输出结果为:

 

 三、对象的产生

  1.当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值,除了基本的数据类型之外的变量类型都是引用类型。

 

  2.匿名对象

     我们也可以不定义对象的句柄,而直接调用这个方法的对象(例如 new student().showInfo() )。这样的对象叫做匿名对象。使用情况:
      如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象;或者将一个匿名对象作为一个实参传递给一个方法调用。
 
实例:创建一个Person类的对象,设置该对象的name、age、和sex属性,调用study方法,输出字符串“studying”,调用showAge()方法显示age值,调用addAge()方法给对象的age属性值增加2岁。
public class Person{
    public String name;
    public int age;
    public String sex;

    public void study(){
        System.out.println("studying");
    }
    
    public void showAge(){
        System.out.println(age);
    }
    
    public int addAge(int i){
        age += i;
        return age;
    }
    
    public static void main(String[] args){
    Person p = new Person();
    p.name = "张飞";
    p.age = 35;
    p.sex = "男";
    p.study();

    int a = p.addAge(2);
    System.out.println("a:" + a + "  P.age" + p.age);
    }    
}

打印结果为:

实例2:利用面向对象的编程方法,涉及类Cricle计算圆的面积。
public class Cricle{
    public double area(double r){
        return 3.14 * r * r;
    }
    public static void main(String args[]){
    double area = new Cricle().area(2);
    System.out.println("半径为2的圆的面积是:" + area);
    }
}

打印结果为:

 

四、类的访问机制

  1.在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static的成员变量,编译不通过)

   2.在不同类中的访问机制:先创建要访问的类的对象,再用对象访问类中定义的成员。

五、面向对象思想落地法则(一)

  1.关注于类的设计,即设计类的成员:属性、方法

  2.类的实例化,及创建类的对象(例如:Person p = new Person())

  3.通过“对象.属性”、“对象.方法”执行

posted @ 2019-11-03 18:28  苏胖胖  阅读(271)  评论(0)    收藏  举报