面向对象编程
Java的核心思想就是OOP
面向过程 & 面向对象
属性加方法就是一个类
什么是面向对象
以类的方式组织代码,以对象的形式封装数据
回顾方法及加深
package com.oop;
import java.io.IOException;
import java.security.PublicKey;
//Demo01 类
public class Demo01 {
//main 方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名字(……) {
//方法体
return 返回值;
}
*/
//return 结束方法,返回一个结果!
public String sayHello(){
return "Hello,World";
}
public void print(){
return;
}
public void hello(){
return;
}
public int max(int a,int b){
return a>b ? a : b; //三元运算符!
}
//数组下标越界:Arrayindexoutofbounds
public void readFile(String file) throws IOException {
}
}
静态方法
非静态方法
package com.oop;
public class Demo02 {
public static void main(String[] args) {
//实例化这个类 new
//对象类型 对象名字 = 对象值;
Student student = new Student();
student.say();
}
//static 和类一起加载的
public static void a(){
//b();
}
//类实例化之后才存在
public void b(){}
}
package com.oop;
public class Demo03 {
public static void main(String[] args) {
//实际参数和形式参数的类型要对应!
int add = Demo03.add(1, 2);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
}
package com.oop;
//值传递
public class Demo04 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);//1
Demo04.change(a);
System.out.println(a);//1
}
//返回值为空
public static void change(int a){
a = 10;
}
}
package com.oop;
//引用传递 : 传递一个对象,本质还是值传递
//对象 ,内存!
public class Demo05 {
public static void main(String[] args) {
Perosn perosn = new Perosn();
System.out.println(perosn.name);//null
Demo05.change(perosn);
System.out.println(perosn.name);
}
public static void change(Perosn perosn){
//perosn是一个对象;指向的是 Perosn perosn = new Perosn();这是一个具体的人,可以改变属性!
perosn.name = "棘布";
}
}
//定义了一个Perosn类,有一个属性:name
class Perosn{
String name;//null
}
类与对象的创建
创建与初始化对象
构造器
package com.oop.demo02;
//java ---> class
public class Person {
//一个类即使什么都不写,它也会存在一个方法(构造器)
//显示的定义构造器
//无参构造
String name;
int age;
//快捷键alt + insert
//实例化初始值
//1.使用new关键字,本质是在调用构造器
//2.构造器用来初始化值
public Person(){
this.name = "jibu";
}
//有参构造:一旦定义了有参构造,无参构造就必须显式定义
public Person(String name){
this.name = name;
this.age = age;
}
}
/*
public static void main(String[] args) {
//new 实例化了一个对象
Person person = new Person("jibu");
System.out.println(person.name);//null
}
* */
//构造器:
//1.和类名相同
//2.没有返回值
//作用:
//1.new 本质在调用构造方法
//2.初始化对象的值
//注意点:
//1.定义了有参构造之后,如果想使用无参构造,显式的定义一个无参的构造
//this. =
创建对象内存分析
简单小结类与对象
1. 类与对象 类是一个模板(抽象的),对象是一个具体的实例。 2.方法 定义、调用! 3.对象的引用 引用类型: 基本类型(8) 对象是通过引用来操作的:栈--->堆 4.属性:字段Filed 成员变量 默认初始化: 0 0.0 char : u0000 boolean:false 引用: null 修饰符 属性类型 属性名 = 属性值! 5.对象的创建和使用 必须使用new关键字创造对象,构造器 Person jibu = new Person(); 对象的属性:jibu.name 对象的方法:jibu.sleep(); 6.类 静态的属性 属性 动态的行为 方法 封装、继承、多态