JAVA 基础6-面向对象1

一.对象的定义

对象是事物存在的实体,通常将对象划分为两部分:静态部分和动态部分,静态部分被称为属性,动态部分被称为行为,通过探讨对象的属性和观察对象的行为来了解对象。

二.类

1.类的定义:具有相同特性和行为的一类事物称为类,类是封装对象的属性和行为的载体;

2.类的主方法:类的入口点,定义了程序从何处开始;并提供对程序流量的控制;

格式:public static void main(String[] args){

  方法体

}

特点:无返回值;静态的;形参为数组;

3.成员方法:对应于类对象的行为。也称为方法,动态属性。可以有参数。当参数为对象时则建立了类之间的关联关系;

格式:权限修饰符 返回值类型(无返回值写void) 方法名(参数类型 参数名){

  方法体  (需要返回值可使用return关键字)

}

4.成员变量:对应于类对象的属性。也称为属性,静态属性。成员变量可以是任意一种类型;

格式:先定义类 ,再定义成员变量。

权限修饰符 class 类名(首字母大写){

  权限修饰符 变量类型 变量名(可以设置初始值,如不设置则会有默认初始值)

}

成员变量的默认初始值:

byte    0
short     0
int       0
long    0L
float    0.0F
double   0.0D
boolean  false
char    '/u0000'
引用类型  null (所有的类,所有的接口,所有的数组)

5.局部变量:在成员方法内定义的变量,在方法被执行时创建,在方法执行结束时被销毁,在使用时必须进行赋值或被初始化,否则出现编译错误。

6.类之间的关系

  • 关联关系:定义不明确,关系较弱;分为两种,一种是一个类中的某个方法的参数是另一个类的对象;另一种是一个类中的某个成员变量是另一个类的对象;例:老师和同学的关系:在老师类中定义学生类对象:private Student[] students;在学生类中定义老师类对象:private Teacher teacher;
  • 继承关系:什么是一种什么,符合逻辑即可,关键字 extends;
  • 聚合关系:1.聚集:不是必不可少的一部分;2.组合:一个类的组合是必不可少的;
  • 实现关系:是一种特殊的继承关系;只管结果,不管过程;

7.如何更好的设计一个类:合适的方法出现在合适的类里面。

三.面向对象的特点:

1.封装:是面向对象编程的核心思想,将对象的属性和行为封装起来;类通常对客户隐藏其实现细节,这就是封装的思想;关键字:private/public;

2.继承:类之间的关系被称为关联,继承是关联中的一种,主要利用特定对象之间的共有属性,上级成为父类,下级成为子类,子类的实例都是父类的实例,但不能说父类的实例都是子类的实例;

3.多态:将抽象类对象应用于子类;

四.对象的创建(也称为实例化,造了)

在主方法中格式:类名 对象名 = new 类名();类名 对象名 = new 类名("a");

每实例化一个对象就会自动调用一次构造方法,这就是创建对象的过程,准确说是使用new操作符调用构造方法创建对象。

对象的创建和初始化是被捆绑在一起的,每个对象都是独立的,在内存中占据独立的内存地址,且都有自己生命周期,当一个对象的生命周期结束时,由垃圾回收机制处理,不能再被使用。

五.类的封装

将成员变量的权限设为私有的,关键字private。private关键字修饰的成员变量, 只能在当前类中使用;

为了能够公开使用这个变量,需要用方法将其改为公开的。方法命名必须按照规则;

例定义一个名字变量:private String name;

获取值的方法为:

public String getName(){

  return name;

}

修改值的方法为:

public void setName(String name){

  this.name = name;

}

修改值的方法可以用来进行某些变量的条件验证,比如年龄。

可以通过alt+shift+s 快捷键快速调出此两种方法。

六.方法的构造

是指用来构造一个对象的方法。当实例化一个对象时,类都会自动调用构造方法。

在构造方法中可以为成员变量赋值,当实例化一个对象时,相应的成员变量也会被初始化。

构造方法特点:

1. 构造方法没有返回值, 也不能写void。
2. 构造方法名与类名一模一样。
3. 定义一个类的时候, 如果没有写任意的一个构造方法, 则默认生成一个空参的构造方法,可以在这个方法内对成员变量进行初始化。
4. 当一个类中有定义的带参数的构造方法的时候, 则默认空参的构造方法会消失,此时构成构造方法的重载,当需要使用空参方法实例对象时,需要再写一个空的构造方法。

七.控制台输入

例题

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);     //System.in在这表示一个输入流 创建了一个新的扫描器,并打开了这个流
		System.out.println("请输入第一个数字: ");
		String s1 = scanner.nextLine();           //程序会停止并接收输入控制台的命令,以回车结束再运行。
		System.out.println("请输入第二个数字: ");
		String s2 = scanner.nextLine(); // 
		int i1 = Integer.parseInt(s1);           //使用包装方法将字符串转化为整型。
		int i2 = Integer.parseInt(s2);
		System.out.println("这两个数字相加的结果是: " + (i1 + i2));	
		scanner.close();                   //打开后需要手动关闭这个流
    }
}
原文地址:https://www.cnblogs.com/wyc1991/p/8983258.html