什么是面向对象
- 面向对象编程(oop)
- 面向对象编程的本质是:以类的方式组织代码,以对象的组织(封装)数据
- 抽象
- 三大特征:封装、继承、多态
- 从认识论角度考虑是先有对象后有类。对象是具体的事物。类是抽象的,是对对象的抽象
- 从代码运行角度考虑是先有类后有对象。类是对象的模板
回顾方法及加深
运用实例1
public class FangFa {
public static void main(String[] args) {
}
public String sayHello(){
return "hello,world!";
}
public void print(){
return;
}
public int max(int a,int b){
return a>b?a:b;
}
}
运用实例2
public class FangFa2 {
public static void main(String[] args) {
Student student = new Student();
student.sayHello();
int add=add(1,2);
System.out.println(add);
int a=1;
System.out.println(a);
zhi(a);
System.out.println(a);
Person person=new Person();
System.out.println(person.name);
person.name="李同洲";
System.out.println(person.name);
}
public static int add(int a,int b){
return a+b;
}
public static void zhi(int a){
a=10;
}
}
class Student {
public void sayHello(){
System.out.println("学生说话了");
}
}
class Person{
String name;
}
类与对象
基本介绍
- 类与对象的关系:
- 类是一种抽象的数据类型,他是对某一类事物整体描述\定义,但并不代表某一个具体的事物
- 对象是抽象概念的具体实例化:如:张三是人的实例化;张三的旺财是狗的实例化
- 创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建对象时,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用
运用实例
public class New {
public static void main(String[] args) {
Stedents xh=new Stedents();
Stedents xm=new Stedents();
System.out.println(xh.name);
xm.name="李同洲";
xm.age=8;
System.out.println(xm.name);
System.out.println(xm.age);
xm.study();
}
}
class Stedents{
String name;
int age;
public void study(){
System.out.println(this.name+"在学习");
}
}
构造器(构造方法)
基本介绍
- 类中的构造器也成为构造方法,是在进行创建对象时必须要调用的。
- 构造器的特点:a.必须和类的名字相同;b.必须没有返回类型,也不能写void。
- 构造器的作用:a.new 本质是调用构造方法;b.初始化对象的值
- 注意:一旦定义了有参构造,就必须要显示无参构造
运用实例
public class GouZao {
public static void main(String[] args) {
People li = new People();
System.out.println(li.name);
People tong=new People("li");
System.out.println(tong.name);
}
}
class People{
String name;
public People() {
}
public People(String name) {
this.name = name;
}
}
试题例如
public class Pet {
public static void main(String[] args) {
Pets dog = new Pets();
dog.name="旺财";
dog.age=3;
System.out.println(dog.name);
System.out.println(dog.age);
dog.shout();
Pets cat = new Pets();
System.out.println(cat.name);
System.out.println(cat.age);
cat.shout();
}
}
class Pets{
String name;
int age;
public Pets() {
}
public Pets(int age) {
this.age = age;
}
public Pets(String name) {
this.name = name;
}
public void shout(){
System.out.println("在叫!");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!