面向对象
什么是面向对象


回顾方法的定义
package objectOriented;
import java.io.IOException;
public class Demo01 {
public static void main(String[] args) {
}
public static String sayHello(){
return "Hello,World!";
}
public int max(int a,int b){
return a>b ? a:b;
}
public void readFile(String file) throws IOException{
}
}
回顾方法的调用
package objectOriented;
public class Student {
public static void say(){
System.out.println("学生说话");
}
public void pillowTalk(){
System.out.println("学生说悄悄话");
}
}
package objectOriented;
public class Demo02 {
public static void main(String[] args) {
Student.say();
Student student = new Student();
student.pillowTalk();
}
public static int add(int a,int b){
return a+b;
}
}
package objectOriented;
public class Demo03 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);
change(a);
System.out.println(a);
}
public static int change(int a){
a=10;
return a;
}
}
package objectOriented;
public class Demo04 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);
change(person);
System.out.println(person.name);
}
public static void change(Person person){
person.name = "张三";
}
}
class Person{
String name;
}
类与对象的关系

package objectOriented;
public class Student {
String name;
int age;
public static void say(){
System.out.println("学生说话");
}
public void pillowTalk(){
System.out.println("学生说悄悄话");
}
public void study(){
System.out.println(this.name + "在学习");
}
}
package objectOriented;
public class Demo05 {
public static void main(String[] args) {
Student student = new Student();
student.study();
}
}
构造器详解
package objectOriented;
public class Person {
String name;
public Person(){
}
public Person(String name){
this.name=name;
}
}

创建对象内存分析

简单小结类与对象


封装详解


package objectOriented2;
public class Student {
private String name;
private int id;
private char sex;
public String getName(){
return this.name;
}
public int getId(){
return this.id;
}
public char getSex(){
return this.sex;
}
public void setName(String name){
this.name = name;
}
public void setId(int id){
this.id = id;
}
public void setSex(char sex) {
this.sex = sex;
}
}
什么是继承

package objectOriented2;
public class Person {
public void say(){
System.out.println("人在说话");
}
}
package objectOriented2;
public class Student extends Person{
private String name;
private int id;
private char sex;
public String getName(){
return this.name;
}
public int getId(){
return this.id;
}
public char getSex(){
return this.sex;
}
public void setName(String name){
this.name = name;
}
public void setId(int id){
this.id = id;
}
public void setSex(char sex) {
this.sex = sex;
}
}
package objectOriented2;
public class Demo01 {
public static void main(String[] args) {
Student student = new Student();
student.say();
}
}
Super详解

package objectOriented2;
public class Person {
public String name = "Person";
}
package objectOriented2;
public class Student extends Person{
public String name = "Student";
public Student(){
super();
}
public void print1(){
System.out.println(this.name);
}
public void print2(){
System.out.println(this.name);
System.out.println(super.name);
}
}
package objectOriented2;
public class Demo01 {
public static void main(String[] args) {
Student student = new Student();
student.print1();
student.print2();
}
}
方法重写

package objectOriented2;
public class B {
public static void test1(){
System.out.println("B->test()");
}
public void test2(){
System.out.println("B->test()");
}
}
package objectOriented2;
public class A extends B {
public static void test1(){
System.out.println("A->test()");
}
public void test2(){
System.out.println("A->test()");
}
}
package objectOriented2;
public class Demo02 {
public static void main(String[] args) {
A a = new A();
B b = new A();
a.test1();
b.test1();
a.test2();
b.test2();
}
}
多态


package objectOriented3;
public class Person {
public void run(){
System.out.println("run");
}
}
package objectOriented3;
public class Student extends Person{
public void run(){
System.out.println("son");
}
public void eat(){
System.out.println("eat");
}
}
package objectOriented3;
public class Demo01 {
public static void main(String[] args) {
Student s1 = new Student();
Person s2 = new Student();
Object s3 = new Student();
s1.run();
s2.run();
s1.eat();
}
}
instanceof和类型转换
package objectOriented3;
public class Person extends Object{
}
package objectOriented3;
public class Student extends Person{
public void go(){
System.out.println("go");
}
}
package objectOriented3;
public class Teacher extends Person{
}
package objectOriented3;
public class Demo01 {
public static void main(String[] args) {
Object object = new Student();
System.out.println(object instanceof Student);
System.out.println(object instanceof Person);
System.out.println(object instanceof Object);
System.out.println(object instanceof Teacher);
System.out.println(object instanceof String);
Person student1 = new Student();
((Student)student1).go();
Person student2 = new Student();
Person person = student2;
}
}
static关键字详解
package objectOriented3.Demo02;
import java.sql.SQLOutput;
public class Person {
{
System.out.println("匿名代码块");
}
static{
System.out.println("静态代码块");
}
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person = new Person();
}
}
package objectOriented3.Demo02;
public class Student {
private static int age;
private double score;
public void run(){
}
public static void go(){
}
public static void test(){
go();
}
}
package objectOriented3.Demo02;
import static java.lang.Math.random;
public class Test {
public static void main(String[] args) {
System.out.println(random());
}
}
抽象类


package objectOriented3.Demo03;
public abstract class Action {
public abstract void doSomething();
}
package objectOriented3.Demo03;
public class A extends Action{
@Override
public void doSomething() {
}
}
接口的定义和实现


package objectOriented3.Demo04;
public interface UserService {
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
package objectOriented3.Demo04;
public interface TimeService {
}
package objectOriented3.Demo04;
public class UserServiceImpl implements UserService,TimeService{
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
}
内部类

package objectOriented3.Demo05;
public class Outer {
private int id = 1;
public void out(){
System.out.println("这是外部类的方法");
}
class Inner1{
public void in(){
System.out.println("这是内部类的方法");
}
public void getId(){
System.out.println(id);
}
}
}
package objectOriented3.Demo05;
public class Application {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner1 inner = outer.new Inner1();
inner.getId();
}
}
class A{
}
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术