对象:
OOP:面向对象编程 OO:面向对象
类 = 属性+ 方法
三大特性: 封装 继承 多态 在代码的角度是现有类,再有对象
方法:
修饰符 返回值类型 方法名(。。。){
//方法体
return 返回值; // 返回什么样的值就返回什么样的类型
}
也可以在student函数中加入static使用静态方法,在main函数中使用student. say()输出结果相同.
只能实际参数传到形式参数
package OOP;
public class Demo3 {
public static void main(String[] args) {
//静态方法 static
//静态方法
// student.say();
//要是调用 一是那一个文档加static 2.实例化这个类 new
//static和类一起加载的 ,就是两个都是静态或者非静态可以调用,不同不能调用
//非静态
//对象类型 对象名字 = 对象的值;
student student = new student();
student.say();
输出:
学生说话了
package OOP;
public class student {
public void say(){
System.out.println("学生说话了");
}
}
package OOP;
//引用传递:对象,本质还是值传递。
public class Demo6 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name); //null
Demo6.change(person);
System.out.println(person.name); //liuyang
}
public static void change(Person person){
//person是一个对象:指向的----> Person person = new Person();这是一个具体的人可以改变
person.name ="liuyang";
}
}
//定义了一个Person类,有一个属性: name
class Person{
String name;
}
输出:
null
liuyang
面向对象本质就是:以类的方式组织代码,以对象的组织(封装)数据。
package OOP;
//类和对象的创建 63
//使用new关键字创建对象
//学生类 一个简单的类:属性+方法
public class Demo7 {
//属性:字段
String name;
int age; //0
}
package OOP;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import org.w3c.dom.ls.LSOutput;
//一个项目只存在一个main方法
public class Demo7Application {
public static void main(String[] args) {
//类:抽像的 ,实例化
//类实例化后会返回一个自己的对象!
//demo7对象就是一个Demo7的具体实例
Demo7 xiaoming= new Demo7();
Demo7 xiaohong= new Demo7(); //new关键字创建对象
xiaoming.name="小明";
xiaoming.age = 2;
System.out.println(xiaoming.name);
System.out.println(xiaoming.age);
}
}
输出:
小明
2
一个类即使什么都不写,他也会存在一个方法
使用new关键字,本质是在调用构造器。
有参构造:一旦定义了有参构造,无参就必须显示定义 IDEA快捷键:alt+insert自动生成有参 无参
构造器: 1构造器和类名相同 2没有返回值 作用 1new本质在调用构造方法 2初始化对象的值 注意点 1定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造 this .代表当前类 = (代表当前传进来的值)
先创建一类,再创建一个对象。
package OOP;
public class Demo9Pet {
public String name;
public int age;
//无参构造
public void shout(){
System.out.println("叫了一声");
}
}
package OOP;
//先创建一类,在在这边创建一个对象。
public class Demo9 {
public static void main(String[] args) {
Demo9Pet person = new Demo9Pet();
person.name ="刘洋";
person.age=23;
person.shout();
System.out.println(person.name);
System.out.println(person.age);
}
}
输出:
叫了一声
刘洋
23
总结:
1.类与对象 类是一个模板,对象是一个集体的实例 类是一个抽象,对象是具体的 2.方法. 定义:调用 3.对象的引用 引用类型:基本类型(8) 对象是通过引用来操作的:栈---->堆(地址) 4.属性:字段field 成员变量 默认初始化: 数字:0 0.0 char:u0000 boolean:false 引用:null 修饰符 属性类型 属性名 =属性值; 5.对象的创建和使用 必须使用new关键字创建对象,必须有构造器 Person person = new Person(); 对象的属性 person.name 对象的方法 person.sleep(); 6.类(只有这两个) 静态的属性 动态的行为