Day16 基础复习及面向对象01
Scanner,Random工具
package oop;
//使用工具第一步导包
import java.util.Scanner;
public class oop001 {
public static void main(String[] args) {
//获取工具
Scanner tool = new Scanner(System.in);
System.out.println("输入年龄");
//使用工具
int age = tool.nextInt();
//输入姓名
System.out.println("输入姓名");
String name = tool.next(); //接收键盘录入的下一个数据
//操作数据
System.out.println("年龄为" + age);
System.out.println("姓名为" + name);
}
}
package oop;
//使用工具第一步导包
import java.util.Random;
public class oop001 {
public static void main(String[] args) {
Random random = new Random();
int num = random.nextInt(); //随机生成一个整数,在所有整数Int选一个
//随机输入考试成绩
int num2 = random.nextInt(101);//在0-100中选一个 [0,101) =[0,100]
//随机生成及格的成绩 >=60
int num3 = random.nextInt(100 -60 + 1)+60;
System.out.println(num3);
}
}
面向对象大纲
- 类与对象
- 内存分析
- 面向对象经典案例
- 构造器
- this关键字
- 成员方法的使用与应用
- static关键字
面向对象解释
- 面向对象是一种思想
- 面向对象适合复杂的、适合多人协作的
- 宏观上我们使用面向对象,细节上我们使用面向过程
- 项目经理—面向对象,打工的—面向过程
- 可以将复杂的问题简单化
- 我们首先思考的是“怎么设计这个事物”,而不是考虑按步骤做
- 其次应该思考“应该让谁来实现” 谁指的就是对象,对象如何实现我们不关注,只关注对象本身
类与对象
对象---->实例(具体存在的)
先有类才能创造对象
工厂中造车 图纸(类)------> 车(对象)
类中包含 定义功能——成员方法 属性——变量
类可以看做是个模板,对象就是实例
类:class 对象:object,instance(实例)
某个类的对象与某个类的实例是一个意思
类中定义了这一类对象所应具有的静态和动态属性
JDK中提供了很多类供使用,也可以定义自己的类
自定义类
定义类(类的组成)
- 属性(也叫成员变量)(特征、特点) field
- 方法(也叫成员方法)(功能、行为) method
- 构造方法 construtor
- 其他:代码块、静态代码块、内部类
属性(成员变量)
- 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体
- 在定义成员变量是可以对其初始化,如果不对其初始化,java使用默认的值对其初始化
定义格式:
[修饰符] 属性类型 属性名 = [默认值];
[修饰符] 可以省略:可以是:public protected private static final
属性类型:可以是任何类型,基本类型和引用类型
属性名:合法标识符即可,首字母小写,驼峰命名规则
public class Person{
String name = "张三";
}
方法
- 方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似与面向过程中的函数。面向对象中,整个程序的基本单位是类,方法是从属于类个对象的
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表){
//n条语句
}
public class Person{
//成员变量
String name;
//成员方法
public void study(){
System.out.println("牛批");
}
}
使用
创建对象
类名 对象名 = new 类名()
Person p1 = new Person()
调用类的属性和方法
对象名.成员变量
对象名.成员方法
p1.name = “李四”;
p1.study();
public class oop001 {
public static void main(String[] args) {
class phone {
String colour;
public void call() {
System.out.println("牛皮");
}
}
phone p1 = new phone();
p1.call();
}
}
//在同一文件调用类的时候,创建类为什么不需要写修饰符?
成员变量与局部变量的区别
- 声明的位置不同 成员变量:类中或方法外 局部变量:方法中
- 作用的范围不停 成员变量:当前类的方法 局部变量:当前方法(不同的方法中及时有同名的局部变量,没有关系,互不影响,建议相同)
- 内存存放的位置:成员变量:栈内存中 局部变量:堆内存中
- 成员变量有默认值;局部变量没有默认值
类与类之间的关系
- 6种关系:依赖、关系、聚合、耦合、组合、继承、实现,他们之间的耦合度依次增加
继承
public class Person{
int age;
String name;
void move(){}
}
public class student extends Person{
void study(){}
}
实现
- 实现指的是一个class类实现interface接口(可以是多个),实现是类与接口之间最常见的关系,用implements实现
- 在Java中一个孩子只能有一个亲爸(继承),但是能有若干个干爹(接口)
- 一般定义接口的时候都是功能的集合,类和接口之间只能是类实现接口
。。。。