Dart语法基础系列七《类》,史上最通俗计算机网络分层详解

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

int age = 3;

String? sex;

// Person(this.name, this.age, this.sex);

// Person.formJson(Map json) {

// this.name = json[‘name’];

// this.age = json[‘age’];

// this.sex = json[‘sex’];

// }

// Person.formJson(Map json)

// : name = json[‘name’],

// age = json[‘age’],

// sex = json[‘sex’];

static final Map<String, Person> _cache = <String, Person>{};

factory Person(String name) {

if (_cache.containsKey(name)) {

return _cache[name]!;

} else {

final person = Person._initName(name);

person.age = 21;

_cache[name] = person;

return person;

}

}

Person._initName(this.name);

}

void main(List args) {

// var p1 = Person.formJson({‘name’: ‘小红’, ‘age’: 18, ‘sex’: ‘男’});

// print(p1.name);

var xiaoming = Person(‘xiaoming’);

print(xiaoming.age);

var xiaoming1 = Person(‘xiaoming’);

xiaoming1.age = 23;

print(xiaoming.age);

}

调用发现最后都是一个实例。

常量构造函数

如果该类生成的对象是固定不变的, 那么就可以把这些对象定义为编译时常量。 为此,需要定义一个 const 构造函数, 并且声明所有实例变量为 final。

class Person {

final String name;

final int age;

final String? sex;

const Person(this.name, this.age, this.sex);

}

void main(List args) {

var p1 = const Person(“xiaoming”, 16, “男”);

var p2 = const Person(“xiaoming”, 16, “男”);

print(identical(p1, p2));

}

方法



方法是为对象提供行为的函数。

实例方法

普通类的方法

run() {

print(“跑”);

}

类方法(静态方法)

静态方法不能使用实例变量

static isAdult(age) {

return age > 18 ? true : false;

}

Getter 和 Setter

Getter 和 Setter 是用于对象属性读和写的特殊方法。 回想之前的例子,每个实例变量都有一个隐式 Getter ,通常情况下还会有一个 Setter 。 使用 get 和 set 关键字实现 Getter 和 Setter ,能够为实例创建额外的属性。

class Rectangle {

num left, top, width, height;

Rectangle(this.left, this.top, this.width, this.height);

// 定义两个计算属性: right 和 bottom。

num get right => left + width;

set right(num value) => left = value - width;

num get bottom => top + height;

set bottom(num value) => top = value - height;

}

void main() {

var rect = Rectangle(3, 4, 20, 15);

assert(rect.left == 3);

rect.right = 12;

assert(rect.left == -8);

}

继承



dart类肯定也是可以继承的,和其他语言一样。

下面一个例子可以讲明白继承的一些应用:

  • 方法的重写

  • super 调用父类

  • 多态(父类指针指向子类,但是还是子类实例)

class Person {

final String name;

run() {

print(‘run’);

}

Person(this.name);

}

class Student extends Person {

Student(String name) : super(name);

总结一下

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ert/6e0ba223f65e063db5b1b4b6aa26129a.png)

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-p1vzxmDk-1713291996856)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值