前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手捏Java知识点

手捏Java知识点

作者头像
学编程的小程
发布2023-10-11 15:42:00
1420
发布2023-10-11 15:42:00
举报
文章被收录于专栏:学习笔记ol

今天开始面向对象了

在这里插入图片描述
在这里插入图片描述
面向对象基础
代码语言:javascript
复制
    类:由属性和行为组成
        属性:在类中通过成员变量来体现
        行为:在类中通过成员方法来体现
        public class 类名{
            //成员变量
            变量1的数据类型 变量1;
            变量2的数据类型 变量2;
            ...
            //成员方法
            方法1;
            方法2;
            ...
        }
有几个重要的概念和特性需要了解。
在这里插入图片描述
在这里插入图片描述
类和对象
代码语言:javascript
复制
在Java中,类是描述具有相同属性和行为的对象的蓝图。通过定义类,可以创建
多个实例,即对象。对象是类的具体实现,并且可以使用其属性和方法来完成特
定的任务。
封装
代码语言:javascript
复制
封装是将数据和操作组合起来,以便通过类的接口访问它们。通过将数据字段隐
藏在类的内部,并提供公共方法来访问和修改数据,可以保护数据的完整性和安
全性。
在这里插入图片描述
在这里插入图片描述
继承
代码语言:javascript
复制
继承是指一个类获得另一个类的属性和方法。通过继承,子类可以重用父类的代
码,并且还可以添加自己的特定功能。在Java中,使用关键字extends实现继承
关系。
多态
代码语言:javascript
复制
多态是指一个对象可以表现出多种形态或类型。通过多态,可以使用统一的接
口来处理不同类型的对象,提高代码的可复用性和可拓展性。在Java中,多态
可以通过方法的重写和接口的实现来实现。
抽象类与接口
代码语言:javascript
复制
抽象类是无法被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法只有
声明而没有具体实现,需要子类去实现。接口定义了一组方法的规范,任何类都
可以实现一个或多个接口。不同类之间通过继承抽象类或实现接口来共享代码
和行为。
在这里插入图片描述
在这里插入图片描述

除此之外还有其他一些与面向对象相关的概念,如构造函数、方法重载、访问修饰符等。理解这些基础知识也很重要。

代码示例

定义一个新的手机类并在这个类中使用

代码语言:javascript
复制
public class crj {
    public static void main(String[] args) {
        Phone p = new Phone();
        //使用成员变量
        System.out.println(p.brand);
        System.out.println(p.price);

        p.brand = "小米";
        p.price = 2999;

        System.out.println(p.brand);
        System.out.println(p.price);

        //使用成员方法
        p.call();
        p.sendPassage();
    }
}

新定义一个学生类,并在这个类中使用

代码语言:javascript
复制
public class crj {
   public static void main(String[] args) {
       Student s = new Student();
       //调用成员变量
       s.name="高启强";
       s.age=39;
       System.out.println(s.name+s.age);
       //调用成员方法
       s.study();
       s.doHomework();
   }
}
public class Student {
   //成员变量
   String name;
   int age;
   //private int age;

   public void setAge(int a) {
//        age = a;
       if (a < 0 || a > 120) {
           System.out.println("年龄有误");
       } else {
           age = a;
       }
   }

   //成员方法
   public void study() {
       System.out.println("好好学习");
   }

   public void doHomework() {
       System.out.println("多加练习");
       int j = 0;
   }

   public void show() {
       System.out.println(name + "," + age);
   }
   public String getName(){
       return name;
   }
   public int getAge(){
       return age;
   }
}
在这里插入图片描述
在这里插入图片描述
private关键字
代码语言:javascript
复制
    是一个权限修饰符
    可以修饰成员
    作用:保护成员不被别的类使用,
            被private修饰的成员只在本类中才能访问
    使用方法
        提供get变量名()用于获取成员变量的值,方法用public修饰
           set变量名(参数)用于设置成员变量的值方法用public修饰


	在Java中,private是一种访问修饰符(access modifier),用于控制类
	的成员(字段和方法)的可见性。具体来说,private修饰的成员只能在所
	属类的内部访问,而在类的外部是不可见的。

	使用private关键字可以实现封装(encapsulation)的概念,将类的内部
	数据和实现细节隐藏起来,只暴露必要的接口给外部使用。这样做的好处是
	可以提高代码的安全性和可维护性,防止外部代码直接访问类的私有成员,
	从而避免不经意间改变了类的内部状态。

下面演示了private关键字的使用:

代码语言:javascript
复制
public class Person {
   private String name;
   private int age;
   
   public Person(String name, int age) {
       this.name = name;
       this.age = age;
   }
   
   public void sayHello() {
       System.out.println("Hello, my name is " + name);
   }
   
   private void increaseAge() {
       age++;
   }
   
   public void celebrateBirthday() {
       increaseAge();
       System.out.println("Happy birthday! Now I'm " + age + " years old.");
   }
}
代码语言:javascript
复制
在上述代码中,name和age字段被声明为private,只能在Person类的内部访
问。sayHello方法是公有方法,可以被外部代码调用。increaseAge方法被声明
为private,只能在Person类的内部调用。
这意味着,当我们创建一个Person对象并调用celebrateBirthday方法时,
age的增加是在类的内部发生的,外部代码无法直接访问和更改age的值。
代码语言:javascript
复制
Person person = new Person("Alice", 25);
person.sayHello();  // 正确,输出:Hello, my name is Alice
person.increaseAge();  // 错误,无法调用私有方法
System.out.println(person.age);  // 错误,无法访问私有字段
person.celebrateBirthday();  // 正确,输出:Happy birthday! Now I'm 26 years old.
总之
代码语言:javascript
复制
private关键字用于限制类的成员的访问范围,只允许在所属类的内部访问。通
过使用private关键字,可以实现封装,提高代码的安全性和可维护性。
在这里插入图片描述
在这里插入图片描述
this关键字
主要有以下几个用途:
引用当前对象的实例变量
代码语言:javascript
复制
在类的方法内部,如果局部变量和实例变量同名,可以使用this关键字来指定访
问实例变量。例如:this.variableName。
调用当前对象的其他方法
代码语言:javascript
复制
在类的某个方法内部,可以使用this关键字来调用当前对象的其他方法。
例如:this.methodName()。
在构造方法中调用其他构造方法
代码语言:javascript
复制
在一个类中,可以定义多个构造方法,通过使用不同的参数列表进行重载。如果
一个构造方法需要调用另一个构造方法,可以使用this关键字。
例如:this(parameters)。
代码示例
代码语言:javascript
复制
public class crj {
    public static void main(String[] args) {
        Student2 s = new Student2();

        s.setName("林清玄");
        s.setAge(30);
        System.out.println(s.getName()+","+s.getAge());
    }
}
public class Student2 {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }
    public String getName(){
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getAge(){
        return age;
    }
}
在这里插入图片描述
在这里插入图片描述
构造方法注意事项
代码语言:javascript
复制
    创建 如果没有定义,系统将给出一个默认的无参构造方法
          如果定义了,系统将不再提供默认构造方法
    重载 如果自定义了带参构造方法,还想使用无参构造方法,就必须再写
    		一个无参构造方法
    推荐 永远提供无参构造方法

	构造方法名称必须与类名完全相同,大小写也要匹配。

	构造方法没有返回类型,连 void 关键字也不需要。

	如果没有显式地定义构造方法,Java 会自动为类定义一个默认的无参构
	造方法。

	如果自定义了有参数的构造方法,Java将不会自动创建无参构造方法。这
	就意味着,如果需要创建一个对象,必须显式地提供一个无参构造方法。

	如果类中同时存在无参构造方法和有参构造方法,那么在创建对象时默认
	首选无参构造方法。

	构造方法可以重载,也就是说可以定义多个具有不同参数列表的构造方法,
	以应对不同的对象创建需求。

	在子类中,构造方法的第一行必须是调用父类的构造方法,否则编译器会自
	动添加默认的 super() 方法调用。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今天开始面向对象了
    • 面向对象基础
      • 有几个重要的概念和特性需要了解。
      • 代码示例
    • private关键字
      • 总之
    • this关键字
      • 主要有以下几个用途:
      • 代码示例
    • 构造方法注意事项
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档