Java面向对象程序设计(基础篇)

一:类与对象
1.类的声明
类可理解为Java中的一种新的数据类型,他是Java程序设计的基本单位。这种数据类型中封装了数据的内容和对数据内容的操作。类的定义可以看作是建立对象的模板,当程序运行时,已声明的类用来创建新对象。由类创建对象对象的过程称为实例化(instantiation),每个对象都是类的一个新实例(instance)。

2.类与对象的关系
类→对象(具体化过程)
对象→类(抽象化过程)

对象包括
1.属性(对象的特征)
2.方法(对象的行为)

3.类的声明格式

[修饰符]  class  类名  [extends 父类]  [implements 接口名]
{
     类成员变量声明    //描述对象的状态
     类方法声明       //描述对象的行为
}

3.1类头
1.修饰符
(1)访问控制符:public、private和protected
public(公共)——后续定义的任何类均可访问。
private(私有)——仅能被类自身的内部函数成员访问,其他任和类都不能直接访问。
protected(受保护的)——同private,但能被继承类受保护的成员访问,不能被私有成员访问。
(2)抽象类说明符:abstract。
abstract 不仅用于类的声明,也适用于方法。当用于类的声明时,该类不能创建对象。
(3)最终类说明符:final。
final不仅用于类的声明,也适用于变量和方法。当用于类的声明时,该类不能有子类;当用于变量声明时,该变量最初赋予的初值在以后的调用中只能被引用不能被修改;同样声明为final的方法,在以后只能被使用不能被重载。
2.class关键字:
类的修饰符后面的class标志一个类定义的开始(注意不将class写成Class),class后面应跟新定义的类的名字,类名由编程者自己定义,应符合Java对标识符的有关规定,能体现该类的主要功能或作用。
3.类名
类名指的是具体创建的类的名字,遵循Java的命名方式。(习惯上类名首字母大写)
3.2类的成员
1.属性
声明方式

[修饰符]  数据类型  变量名;

2.方法

[修饰符]  返回值类型  方法名(参数列表) {
      //方法体
}

3.构造方法

4.类的实例对象及使用过程

public class Student {            //创建了一个学生类       
   pubic static void main(String[] args) {  
      int age;                    //定义类的成员变量
      String name;
      String sex;        
      Student stu = new Student();  //创建了一个名为stu的学生对象
      stu.age = 18;                
      stu.name = 张三;
      stu.sex =;
}       

二.构造方法
1.概念
(1)构造方法是类中的一种特殊的方法。
(2)构造方法名与类名相同,不返回任何值。
(3)构造方法可初始化成员变量。
例:类中加一个构造方法,可初始化类的成员变量

public class Student {
     int age;
     String name;
  public Student(int a,String b) {
     age = a;
     name = b;
  }
  Student stu = new Student(18,"小明");
}

2.关键字this
(1)this表示当前对象,可以调用类的属性、方法、构造方法
(2)什么时候使用this关键字呢?
当形参与成员变量重名时,如果在方法内部需要使用成员变量时,必须添加this来表示该变量的类成员。它在方法内部就是这个方法所属的对象的引用变量。
例:调用类的属性

public class Person {
   public Person(int age,String name) {
        this.name = name;
        this.age =age;
   }
   int age;
   String name;
   public void setName(String name) {
        this.name = name;
   }
}

例:调用类的方法

public class A {
   String name;
   public A(String x) {
      name = x;
   }
   public void func1() {
      System.out.println("func1 of  "+ name +"  is calling");
   }
   public void func2() {
      A a2 = new A("a2");
      This.func1();
      a2.func1();
   }
}
public class TestA {
   pubic static void main(String[] args) { 
      A a1 = new A ("a1");
      a1.func2();
   }
}

运行结果

func1 of a1 is calling
func1 of a2 is calling

三.方法的参数传递
1.方法中含有的参数
(1)形参:方法声明时的参数。
(2)实参:方法调用时实际传给形参的参数值。

在这里插入图片描述
2.参数传递之基本数据类型
栈中存的有基本数据类型
因此:基本数据类型在参数传递过程中,就是把实参的值复制到形参上。
3.参数传递之引用对象类型
栈中存的是引用对象在堆中的地址
因此:引用对象类型在参数传递过程中,也是把值传给形参,这个值是栈中的值,也就是引用对象在堆中的地址。
例:
在这里插入图片描述
简单类对象的实例化过程
Person p = new Person();
在这里插入图片描述
四.访问控制

在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小本科生debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值