JAVA入门----面向对象——属性和方法

首先我们要了解在面向对象中,类和对象的关系:类是对象的抽象,而对象是类的具体实例。

类:对一类事物的描述,是抽象的,概念上的描述;

对象:是实际存在的该类事物的单个个体,也称之为具体实例!

面向对象程序设计的重点就在于类的设计,而类的设计就是类的成员的设计!!

JAVA类及类的成员有哪些:属性,方法,构造器,代码块,内部类。

  • 属性对应着类中的成员变量;
  • 方法对应着类中的成员具有的功能;

比如,人类person,

属性为:姓名name,年龄age,等等;

方法为:吃饭eat,睡觉sleep,可以说话talk language,等等

代码显示就是:

public class Person {
    String name;
    int age;


    public void eat(){
        System.out.println("人会吃饭");
    }
    public void sleep(){
        System.out.println("人会睡觉");
    }
     public void talk(String language){
        System.out.println("人会说话,使用的语言是"+language);
    }
    

测试:

public class Test {
	public static void main(String[] args) {
        //创建Person类的对象
        Person p1 = new Person();

        //调用对象的结构:属性,方法
        //调用对象属性:“对象.属性”    
        //调用对象方法:“对象.方法”
        
        p1.name="张三";
        p1.age=16;
        System.out.println("姓名"+p1.name+",年龄"+p1.age);

        p1.eat();
        p1.sleep();
        p1.talk(English);
    }
}

设计类的成员,创建类的对象,通过“对象.属性”或者“对象.方法”调用对象的结构!当然,一个类中有多个对象,那么每个对象有自己独立的属性和方法!!!写道这里就不得不说属性中的两个变量:成员变量和局部变量

相同点:

  • 定义变量的格式:        数据类型        变量名        =        变量值
  • 先声明,后使用
  • 变量都有其对象的作用域

不同点有:

一、作用域不同:

        1)局部变量的作用域仅限于定义它的方法:有以下两种方式

//第一种不推荐
    public void print() {
        String name="张三";
        System.out.println(name);
    }
 //第二种推荐
    public void print(String name) {
        System.out.println(name);
    }

print()方法外部获取直接报错
    public void print2() {
        System.out.println(name);(这里的name会直接报错)
            //name cannot be resolved to a variable
    }

        2)成员变量的作用域在整个类内部都是可见的

            String name="张三";//成员变量(类内容都可以访问)
            public void print() {
                System.out.println(name);
            }

 二、初始值不同:
    1)JAVA会给成员变量一个初始值    
        int age;这样age=0。
    2)JAVA不会给局部变量赋予初始值

    int age;
        System.out.println(age);这里的age会报错,必须给age赋值,如age=1;
        //The local variable age may not have been initialized

在JAVA中,方法的定义

()内的就是方法

()前面的就是方法名

方法名前面的就是返回值类型

返回值前面的就是修饰符

()后面的就是{},{}中的就称之为方法体

构造方法的定义、特点、种类
    定义:
        访问修饰符  构造方法名(){}
    特点:
        1、无返回值
        2、方法名和类名相同
        3、可指定参数
    种类:
        1、无参构造(系统默认)
            public class Person {
                创建的一个无参构造方法
            public  Person() {    }
        2、有参构造
            public class Person {
                创建一个有参构造方法
            public Person(int count) {  }
        3、普通方法
            public void print() {  }

方法的调用:
                
        1)、调用无参构造器的方式
            Person p=new Person();        
    
        2)、调用有参构造器的方式
            Person p=new Person(5);
        
        3)、普通方法的调用方式
            Person p=new Person();
            p.print();

方法的两种类型
 1)有返回值方法

 public 类型 方法名(){
        return xx;     有返回值的方法必须有return返回
        }

 2)无返回值方法

 public void 方法名(){
                       无返回值的方法不能有return返回
        }

调用返回值方法的方式    
        调用marong对象add()方法,赋给变量a,变量a的类型为int    
            int a=marong.add();
        输出变量a的值
            System.out.println(a);

写到这里,就不得不说在方法中,实参和形参的区别    

形参

 public void add(int count) {
                    add(int count)方法中的count为形参,所谓的形参就是无具体的值
            System.out.println(count);
        }

实参

 public static void main(String[] args) {
    Person p1=new Person();
    p1.add(5);
    add(5)中的5为实参,所谓的实参就是具体的值
    }

方法重载:
    1)同一个类中
    2)方法名相同
    3)参数项不同(个数或者类型不同)
        标准的方法重载
        public void a(int a) {    }    
        public void a(String a) {    }
        
    4)和返回值和访问修饰符无关
        和返回值无关
            public int a(){    }
            public void a(){    }
    
        和修饰符无关
            public int a(){    }
            private int a(){    }
        

おすすめ

転載: blog.csdn.net/superADV/article/details/119731959