Java学习基础篇(-)类和对象


本科大三时自学过java,上研之后就基本没再碰过了,现在想要重新捡起来,所以把这些整理一下,主要是用来督促自己的学习,该资料整理来源于尚硅谷-佟刚的教学视频,仅用来学习。


面向对象的三大特征
-封装(Encapsulation)
-继承(Inheritance)
-多态(Poiymorphism)

类(class)是对一类事物的描述(抽象);对象(object)是该类实物的每个个体(实际存在),也称实例(instance)

【Java类】 属性(比如说一个人的姓名、身高等),也叫做类的成员变量,方法(比如说一个人学习的方法,工作的方法等),也叫类的成员函数

声明类
语法格式
[< 修饰符>] class < 类名>
{
[<属性声明>]
[<构造器声明>]
[<方法声明>]
}
说明:修饰符public:类可以被任意访问
类的正文要用{ }括起来
}

声明属性
语法格式:
[<修饰符>] 类型 < 属性名> [=初值] ;
说明:修饰符 private: 该属性只能由该类的方法访问。
修饰符 public: 该属性可以被该类以外的方法访问。
类型:任何基本类型,如int、boolean或任何类。
举例:

public class Person{
   private int age;             //声明private变量 age 
   public String name = “Lila”; //声明public变量 name 
}

声明方法
语法格式:
<修饰符> <返回类型> <方法名>([< 参数表>]) {
[< 语句>]
}
说明: 修饰符:public,private,protected 等。
返回类型:return语句传递返回值。没有返回值:void。

对象的创建和使用
-使用 new +构造方法 创建一个新的对象;
-使用 “对象名.对象成员” 的方式访问对象成员(包括属性和方法);

 如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰

 类的访问机制:
 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(static方法访问非static方法会编译出错)
 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

对象的创建

class Person
{
     
    int age;
    void shout()
    {
        System.out.println(“oh,my god! I am “ + age);
    }
}
Person p1 = new Person();//执行完后的内存状态

Java学习基础篇(-)类和对象_第1张图片

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

对象的使用
创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员

class TestPerson 
{
     
    public static void main(String[] args)//上面程序运行的内存布局如下图 
    {
         Person p1 = new Person();
        Person p2 =new Person();
        p1.age = -30;
        p1.shout();
        p2.shout();
    }
}

Java学习基础篇(-)类和对象_第2张图片
对象的生命周期
Java学习基础篇(-)类和对象_第3张图片
Java学习基础篇(-)类和对象_第4张图片
Java学习基础篇(-)类和对象_第5张图片

匿名对象

我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传递给一个函数调用。

练习
1、创建一个Person类,其定义如下:

要求:(1)创建Person类的对象,设置该对象的name、age和sex属性,调用study方法,输出字符串“studying”,调用showAge()方法显示age值,调用addAge()方法给对象的age属性值增加 i 岁。
(2)创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。

public class Person {
    private String name;
    private int age;
    private int sex;
    void stduy(){
        System.out.println("studying");
    }
    void showAge(){
        System.out.println("age:"+age);
    }
    int addAge(int i){
        age=age+i;
        return(age);

    }
    public static void main(String[] args) {
    //创建对象1
        Person p=new Person();
        p.name="Tom";
        p.age=3;
        p.sex=1;
        System.out.println("name:"+p.name+"\n"+"sex:"+p.sex);
        p1.study();
        p.addAge(3);
        p.showAge();//age:6
        //创建对象2
        Person p1=new Person();
        p1.name="Lili";
        p1.age=30;
        p1.sex=2;
        System.out.println("name:"+p1.name+"\n"+"sex:"+p1.sex);
        p1.study();
        p1.addAge(2);
        p1.showAge();//age:31
    }
}

2、 利用面向对象的编程方法,设计类Circle计算圆的面积。

public class CircleArea {

    double r;
    double area;
    double CircleAreaCaluate(){
        area=2*Math.PI*Math.pow(r,2);
        return(area);
    }
    public static void main(String[] args) {
        CircleArea ca=new CircleArea();
        ca.r=2.0;
        ca.area=0;
        ca.CircleAreaCaluate();
        System.out.println("r="+ca.r+"\n"+"arae:"+ca.area);
        //r=2
        //arae:25.132741228718345                                                                                      
    }
}

你可能感兴趣的:(java,java,面向对象,基础,类和对象)