java面向对象---类和对象,构造函数

面向对象编程基础
本文介绍了面向对象编程的基础概念,包括面向对象的思想、类与对象的关系、private关键字的使用及构造方法的作用。通过实例演示了如何定义类、创建对象并利用构造方法进行初始化。

今日内容

  • 面向对象思想

  • 类与对象

  • private和this关键字

  • 构造方法

一、面向对象的思想

面向对象是一种基于面向过程的编程思想

面向过程:
    强调的是执行过程
面向对象
    强调的是对象,它把过程交给了对象去完成

面向对象举例:

二、类与对象的关系

面向对象思想,其就是在模拟现实中的事物

1.现实中如何描述事物
    属性:事物的基本信息
    行为:事物具备的能力

2.Java如何描述事物
    Java类           事物
        成员变量        属性
        成员方法        行为

3.类与对象的关系
    类:用来描述事物的
    对象:是类的一个具体体现

    举例:模具是一个类,根据模具造出来的东西就是对象

4.定义类和创建对象
    定义学生类:
        学生的属性:姓名,年龄
        学生的行为:吃饭,睡觉
    public class Student{
        //成员变量
        String name;
        int age;
        //成员方法
        public void eat(){
            System.out.println("吃饭");
        }
        public void sleep(){
            System.out.println("睡觉");
        }
    }
    public class StudentTest{
        public static void main(String[] args){
            //创建对象:类名 对象名=new 类名();
            Student s=new Student();
            //给属性赋值
            s.name="张三";
            s.age=18;
            //输出所有的属性值
            System.out.println("姓名:"+s.name);
            System.out.println("年龄:"+s.age);
            //调用对象的方法
            s.eat();
            s.sleep();
        }
    }

三、private和this关键字

1.private的特点
    private 是一个修饰符,可以修饰成员变量,也可以修饰成员方法
    被private修饰的成员,只能在本来中访问

2.private常见的用法
    1)把类的成员变量用private修饰
    2)对外提供getXxx和setXxx方法,修改或者获取属性值

3.this关键字
    this表示本类对象的引用,当成员变量和局部变量同名时,可以用this区分

举例:
    public class Student{
        //把成员变量私有化
        private String name;
        private int age;

        //提供getXxx和setXxx
        public void setName(String name){
            this.name=name;
        }
        public String getName(){
            return name;
        }

        public void setAge(int age){
            this.age=age;
        }
        public int getAge(){
            return age;
        }
    }

四、构造方法

  • 1.构造方法的理解

    构造方法格式
        public 类名(...){
    
        }
    
    构造方法的作用
        给对象做初始化操作的,一般给成员变量赋值
        (对象一被创建,就需要执行的操作)
    
    构造方法什么时候执行
        new 对象的时候执行
    
    构造方法的注意事项
        a:如果没有写构造方法,系统会有一个默认的空参数构造方法
        b:如果写了构造方法,原来的默认空参数构造方法,就不再提供了
            为了防止报错,自己添加一个空参数构造方法
    
  • 2.代码演示

    //定义学生类
    public class Student{
        //把成员变量私有化
        private String name;
        private int age;
    
        //空构造方法
        public Student(){
    
        }
        //有参数构造方法
        public Student(String name,int age){
            this.name=name;
            this.age=age;
        }
    
        //提供getXxx和setXxx
        public void setName(String name){
            this.name=name;
        }
        public String getName(){
            return name;
        }
    
        public void setAge(int age){
            this.age=age;
        }
        public int getAge(){
            return age;
        }
    }
    
    //在测试类中,创建Student对象
    public class Test{
        public static void main(String[] args){
            Student s=new Student();//调用空参数构造方法,创建对象
            s.setName("张三");//给对象设置姓名
            s.setAge(18);//给对象设置年龄
            System.out.println(s.getName()+","+s.getAge());//张三,18              
    
            Student s2=new Student("李四",20);//调用有参数构造方法,创建对象
            System.out.println(s2.getName()+","+s2.getAge());//李四,20
        }
    }
<think>好的,我现在需要帮助用户理解Java面向对象编程的对象的基本概念使用方法。首先,我得回顾一下用户提供的引用内容,确保信息准确。 用户提到了引用[1]到[5],其中涉及对象、OOP的四大特征、抽象、继承多态等。我需要把这些内容整合成一个清晰的教程。 首先,对象的定义。根据引用[1][2],是对实体的抽象,包含属性方法。对象的实例。我需要用简单的例子说明,比如Person,创建对象的过程,如引用[3]中的例子,obj = new Person()。 然后,的基本结构。成员变量方法,访问修饰符如public、private。这里可能需要提到封装,引用[2][4]提到封装是OOP特征之一,所以应该强调通过方法来访问私有变量。 构造函数部分,用户提供的引用中没有直接例子,但根据知识,构造方法用于初始化对象,需要补充示例,比如无参构造带参数的构造。 方法成员变量的使用,引用[3]中的代码展示了如何修改对象的age属性,可以说明直接访问通过方法访问的区别,进而引入封装的重要性。 继承多态,引用[5]提到继承多态的好处,需要简要说明继承的概念,比如子继承父的属性方法,多态是父引用指向子对象。可能引用[4]中的抽象内容,但用户问题主要是基础,所以可能暂时不深入抽象。 最后,基本使用教程的步骤,分点列出,从定义到创建对象,访问成员,方法调用,继承多态的应用。每个步骤结合代码示例,如引用[3]中的Person例子,以及可能的继承示例。 相关问题部分,根据用户的引用内容,可以提出OOP四大特征、封装的作用、构造函数与普通方法的区别、多态的实现条件等问题,这样帮助用户进一步学习。 需要确保使用正确的中文术语,代码符合Java语法,并正确应用引用标记。比如引用[3]的代码示例展示了对象属性的修改,可以说明对象是通过引用来操作的,这涉及到方法参数传递的问题。 可能还需要注意,用户提供的引用中有关于抽象接口的内容,但用户的问题集中在基本概念,所以暂时不深入这些高级主题,但可以在相关问题中引导用户探索。 总结,结构应该是:定义对象的基本结构,构造函数,方法使用,继承与多态,使用步骤,示例代码,相关问题。确保每个部分都有引用支持,比如引用[2]提到OOP的四大特征,引用[3]展示对象操作,引用[5]涉及继承多态。</think>### Java面向对象编程:对象基本概念及使用教程 --- #### 一、对象的定义 1. **(Class)** 是现实实体的抽象模板,包含**属性(成员变量)****行为(方法)**。例如,`Person`可以抽象“人”的年龄、姓名等属性,以及吃饭、说话等方法[^2][^4]。 ```java public class Person { int age; // 成员变量 String name; } ``` 2. **对象(Object)** 对象的具体实例,通过`new`关键字创建。例如: ```java Person obj = new Person(); // 创建Person对象[^3] ``` --- #### 二、的基本结构 1. **成员变量** 描述对象的属性,如`age`、`name`。可通过访问修饰符(如`public`、`private`)控制可见性。 2. **方法** 定义对象的行为,例如: ```java public void speak() { System.out.println("My name is " + name); } ``` 3. **构造方法(Constructor)** 用于初始化对象,名称与名相同。若未显式定义,Java会提供默认无参构造方法。 ```java public Person() {} // 无参构造方法 public Person(int age, String name) { // 带参构造方法 this.age = age; this.name = name; } ``` --- #### 三、对象的基本使用 1. **创建对象** ```java Person person1 = new Person(); // 使用无参构造 Person person2 = new Person(25, "Alice"); // 使用带参构造 ``` 2. **访问成员变量与方法** ```java person1.age = 30; // 直接赋值(需成员变量为public) person1.speak(); // 调用方法 ``` --- #### 四、继承与多态(OOP核心特征) 1. **继承(Inheritance)** 子继承父的属性方法,实现代码复用。例如: ```java public class Student extends Person { // Student继承Person String school; } ``` 2. **多态(Polymorphism)** 父引用指向子对象,需满足: - 继承/实现关系 - 方法重写(Override) ```java Person student = new Student(); // 多态[^5] ``` --- #### 五、使用教程步骤 1. **定义** 编写的成员变量方法。 2. **创建对象** 通过`new`实例化对象。 3. **操作对象** 调用方法或修改属性(建议通过方法封装属性访问[^4])。 4. **实现继承** 使用`extends`扩展父功能。 5. **应用多态** 结合方法重写提升灵活性。 --- #### 六、完整示例 ```java public class Main { public static void main(String[] args) { Person obj = new Person(); obj.age = 5; System.out.println("修改前年龄:" + obj.age); // 输出5 modifyAge(obj); System.out.println("修改后年龄:" + obj.age); // 输出3[^3] } public static void modifyAge(Person p) { p.age = 3; } } class Person { int age; } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值