博主昵称:Jovy.
博客主页:Jovy.的博客
感谢点赞评论
⚇很方便的在线编辑器:Lightly
让我们一起在写作中记录学习吧!
目录
前言
什么是类?我对类的理解
类的继承、封装、多态
类的封装
类的继承
类的多态
成员方法、权限修饰符、this关键字
成员方法
权限修饰符
this关键字
第一种作用
第二种作用
文末总结
Java是一个专门的面向对象的语言,在现在还是受到很多人的喜爱,Java工程师是招聘需求最大的岗位 学好Java也是一个专业工程师的必备技能,在面向对象中 类是很重要的,所以本篇文章将会为大家讲解类以及类的相关知识 为大家打好基础!
在一开始我学Python的时候遇到了类与对象 在当时我就听说过许多的说法,而我比较认同一个观点:类是一个图纸,而对象是一个成品!这是类与对象的关系!
类是对于一类事物的归纳,而不是单个事物。就拿狗这一类来举例,类就是封装了狗属性和行为,比如狗的属性有品种、大小、颜色、年龄,而他的行为有吃、跑、睡等,拥有这一系列属性和行为的统归为一类!
继承、封装、多态是面向对象设计程序的特点,通过这些特点,我们可以更好的编译程序,使程序编译更加方便
封装是面向对象编程的核心思想。通过类来将对象的属性和行为进行封装。通过封装可以达到对用户隐藏细节。封装保证了类内部数据结构的完整性,使用类的用户不能直接操作类的数据结构,避免类内部的数据安全,提高了程序可维护性。封装后其他程序只需通过封装的类所提供的接口进行使用,不需要了解类的内部的内容!
隐藏的细节就类似于你使用电脑键盘,你只要知道如何使用即可,不需要知道键盘的内部工作原理,这个工作原理就是类所封装的细节所在
类的继承是程序设计里面一个很重要的概念!利用继承,可以使我们程序设计的时间大大缩短,使得开发速度增加,也可以避免代码过多的问题!
继承通过extends来实现
package eee;
class Animal {//声明一个动物类
String name;//定义动物的属性如名字 ,年龄,品种
int age;
String kind;
public void eat () {//定义一个吃的方法
System.out.println("吃东西");
}
}
class Dog extends Animal{ //定义一个狗的类来继承动物类
}
class Cat extends Animal{ //定义一个猫的类来继承动物类
}
public class Ass {
public static void main(String[] args) {
Dog dog = new Dog(); //实例化一个狗的对象
dog.name = "大黄"; //可以发现狗的对象可以使用动物类中的属性变量进行赋值
dog.age = 3;
dog.eat(); //也可以调用动物类中的成员方法
System.out.println(dog.name);
System.out.println(dog.age);
Cat cat = new Cat();
cat.name = "大橘";
cat.age = 2;
cat.eat();
}
}
多态的概念其实很简单,简单明了的说就是,同一个接口有多种不同的作用。例如你在使用f5的时候在网页中是刷新,但是在Python环境中却是代码运行的键,同一个接口有多个作用那他就是多态。
多态中必然包含继承、重写(下图取自菜鸟教程帮助理解)
在不同的子类调用父类的相同方法显示不同结果就是多态的主要特性!
class Shape {
void draw() {}
}
class Circle extends Shape {
void draw() {
System.out.println("Circle.draw()");
}
}
class Square extends Shape {
void draw() {
System.out.println("Square.draw()");
}
}
class Triangle extends Shape {
void draw() {
System.out.println("Triangle.draw()");
}
}
成员方法、权限修饰符、this关键字在类的操作过程中使用十分频繁,是类中必不可缺的一部分,学好他们能让我们类的学习更方便!
package eee;
public class This1 {
public void kali(int aa){ //这是一个kali方法,返回类型为void,所以不能使用return
}
public static int[] linux(int[] aa) { //这是一个linux方法,返回一个数组,返回值使用return
return aa;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
}
看标题也是十分容易理解的,权限修饰符就是使这个方法或者是这个类赋予一定的访问权限,以此来达到限制访问的目的,那么我们就要用到权限修饰符!今天呢我们要学习的是三个比较基础的权限修饰符private、protected以及public
本类 | 同一个包下(其他类和子类) | 不同包下(其他类和子类) | |
---|---|---|---|
public | 可见 | 可见 | 可见 |
protected | 可见 | 可见 | 不可见 |
private | 可见 | 不可见 | 不可见 |
注意:如果声明类时三者修饰符都未使用默认为public,则这个类预设为包存取范围,即只有一个包中的类可以访问这个类的成员方法或成员方法
this关键字的作用分为两个:第一个就是调用类的变量,在类的成员呢变量和参数变量重名的时候就要用到。第二个就是调用类的构造方法,用于两个相同的成员方法
显而易见,this后的name变量是成员变量,而后面的是形式参数
若按照以下代码,则输出的是形式参数传入的值,这样我们就不能调用成员变量,所以我们要用到this关键字
package eee;
public class Eggcake {
String name = "abc";
public void showd(String name) {
System.out.println(this.name); //我们会发现这里的name和成员变量的name同一个颜色,说明他对成员变量进行了调用
}
public static void main(String args[]) {
Eggcake e1 = new Eggcake();
e1.showd("123");
}
}
package eee;
public class Jovy {
int jovy;
public Jovy(int jovy) {
this.jovy = jovy;
System.out.println("Jovy有"+this.jovy+"个");
}
public Jovy() {
this(1);
}
public static void main(String[] args) {
Jovy a1 = new Jovy(5); //因为上方为构造方法,所以实例化即可调用
Jovy a2 = new Jovy(); //查看结果发现已经对构造方法进行调用
// TODO 自动生成的方法存根
}
}
本篇文章是对Java类基础进行总结归纳,更好的辅助Java学习